最近工作任务中运用了java贪婪匹配和非贪婪匹配的不同,在此总结一下。
贪婪匹配顾名思义,就是匹配最长能够匹配出来的字符串,而非贪婪匹配匹配的是最短能够匹配出来的字符串,比如对于下列的字符串:
{resultcode=finish,return=12345,message=hello}
此时如果采用贪婪匹配,java匹配的正则匹配原则如下:
String regex = "resultCode=(.*?),";
//非贪婪匹配
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(result.toString());
while(matcher.find()){
System.out.println("提取出来的resultCode结果");
System.out.println(matcher.group());
}
返回的结果字符串为
resultCode=finish,return=12345,
如果采用非贪婪匹配,java匹配的正则匹配原则如下:
String regex = "resultCode=(.*?),";
//非贪婪匹配
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(result.toString());
while(matcher.find()){
System.out.println("提取出来的resultCode结果");
System.out.println(matcher.group());
}
返回的结果字符串为
resultCode=success,