日期:2014-05-18  浏览次数:20776 次

求java正则匹配!!!!!在线急等!!!
   

     /**
 * 例子写的不好,仅供参考
 * 取taskid:与stat:之间的数字,例子中结果为:12345
 * 取stat:与yj:之间的数字,例子中结果为:3
 * 取yj:之后的所有字符       例子中结果为:同意,很好。
 */
public static void test(){
String str = "你好taskid:12345,,stat:3;yj:同意,很好。";  
Pattern pattern = Pattern.compile("taskid:(.+?)stat:"); //标点怎么去掉
Matcher matcher = pattern.matcher(str);
if(matcher.find())
  System.out.println(matcher.group(1));
}
正则 java

------解决方案--------------------

public static void main(String[] args){
     /**
     * 例子写的不好,仅供参考
     * 取taskid:与stat:之间的数字,例子中结果为:12345
     * 取stat:与yj:之间的数字,例子中结果为:3
     * 取yj:之后的所有字符       例子中结果为:同意,很好。
     */
        String str = "你好taskid:12345,,stat:3;yj:同意,很好。";  
        Pattern pattern = Pattern.compile("taskid:(.+?)stat:"); //标点怎么去掉
        Pattern pattern1 = Pattern.compile("taskid:(\\d+)[^s]+stat:");
        Pattern pattern2 = Pattern.compile("stat:(\\d+)[^y]+yj:");
        Pattern pattern3 = Pattern.compile("yj:(.+)");
        Matcher matcher1 = pattern1.matcher(str);
        Matcher matcher2 = pattern2.matcher(str);
        Matcher matcher3 = pattern3.matcher(str);
        if(matcher1.find())
          System.out.println(matcher1.group(1));
        if(matcher2.find())