{"resultcode":910005,"resultmsg":[api接口]無法查詢到應用記錄,"transactionid":""}
如何讓上面字符串的 resultmsg值 [api接口]無法查詢到應用記錄 加上雙引號 像這樣 不知道用正則表達式能不能弄出來? 求解答, 先謝謝了~
正則表達式:
(.*?resultmsg\":)(.*?)(,.*?})
正則用小括號分成三組,group(1)則代表匹配出的結果的第一部分的內容。依此類推。
java程序代碼:
/*
* @author fateflv
* @version 1.0
* @since 2016-03-26
* @site http://my.csdn.net/fateflv
*/
import java.util.regex.*;
public class reg {
public static void main(String[]agrs)
{
Pattern p=Pattern.compile("(.*?resultmsg\":)(.*?)(,.*?})");
//String s = "{\"resultcode\":910005,\"resultmsg\":[api接口]無法查詢到應用記錄,\"transactionid\":\"\"}";
Matcher m=p.matcher("{\"resultcode\":910005,\"resultmsg\":[api接口]無法查詢到應用記錄,\"transactionid\":\"\"}");
while(m.find()) {
System.out.println("要匹配的原串為:\n"+m.group(0));
System.out.println();
System.out.println("第1組: "+m.group(1));
System.out.println("第2組: "+m.group(2));
System.out.println("第3組: "+m.group(3));
System.out.println("處理後: \n"+m.group(1)+"\""+m.group(2)+"\""+m.group(3));
}
}
}
示例結果圖片: