程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> java-一個關於正則表達式的問題

java-一個關於正則表達式的問題

編輯:編程解疑
一個關於正則表達式的問題

{"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)); 
        }
    }
}

示例結果圖片:
圖片說明

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved