【发布时间】:2019-12-26 06:32:10
【问题描述】:
在下面的代码示例中,matcher.matches() 和 String.matches 没有返回相同的结果,我不明白为什么:
String MIDDLESIGN = "[(\\/)"+"|"+"(\\*)"+"|"+"(\\++)"+"|"+"(\\-+)]";
String x = "1 +++ 2 * 3 -- 4";
System.out.println("1 +++ 2 * 3 -- 4".matches("(\\d+\\s+"+MIDDLESIGN+"*"+"\\s+\\d*)+")); //true
Pattern pattern = Pattern.compile((\\d+\\s+"+MIDDLESIGN+"*"+"\\s+\\d*)+");
Matcher matcher = pattern.matcher(x);
System.out.println(matcher.matches()); //false
知道为什么会有这种差异吗?
【问题讨论】:
-
这已经解决了here
-
查看此答案以了解为什么两者返回相同的结果:stackoverflow.com/a/2469287/8112679
-
@momodjib MIDDLESIGN 的价值是什么??
-
@HarshvardhanJoshi,就我而言,两者的结果不同,所以对我没有帮助
标签: java