java正则表达式中,matches和find的效率问题 20
比如我要查找输入字符串中是否存在successStringinput="adsfadssuccesfadsf";//findPatternpattern=Pattern....
比如我要查找输入字符串中是否存在success
String input = "adsfadssuccesfadsf";
// find
Pattern pattern = Pattern.compile("(?is)success");
Matcher matcher = pattern.matcher(input);
matcher.find();
// matches
Pattern.matches("(?is).*success.*", input);
此时(没有捕获组),matches 和 find 哪 个效率更高?匹配原理是不是相同? 展开
String input = "adsfadssuccesfadsf";
// find
Pattern pattern = Pattern.compile("(?is)success");
Matcher matcher = pattern.matcher(input);
matcher.find();
// matches
Pattern.matches("(?is).*success.*", input);
此时(没有捕获组),matches 和 find 哪 个效率更高?匹配原理是不是相同? 展开
3个回答
展开全部
你可以看下源码,匹配原理是一样的,没什么大区别。效率应该是一样的。匹配原则代码块如下。
this.hitEnd = false;
this.requireEnd = false;
from = from < 0 ? 0 : from;
this.first = from;
this.oldLast = oldLast < 0 ? from : oldLast;
for (int i = 0; i < groups.length; i++)
groups[i] = -1;
acceptMode = anchor;
boolean result = parentPattern.matchRoot.match(this, from, text);
if (!result)
this.first = -1;
this.oldLast = this.last;
return result;
追问
我两个里面的正则表达式是不一样的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询