模式匹配java和android之间的区别?

时间:2016-03-03 15:42:42

标签: java android regex

在java中有趣(或没有),匹配var的计算结果为true,但在android中却没有:

CharSequence target = "man on";
boolean match = ​target.toString().matches("(\\p{L}\\p{L}+-?\\s?\\p{L}+)+"); 

知道为什么会这样吗?

感谢。

PS:我通过导入和使用Matcher来实现它。

Pattern pattern = Pattern.compile("(\\p{L}\\p{L}+-?\\s?\\p{L}+)+");
Matcher matcher = pattern.matcher(target);

然后matcher.matches()在" man on"上评估为true。

1 个答案:

答案 0 :(得分:0)

我认为这里的问题在于CharSequence方法的实施方式不正确,或者在toString()的实际类中忽略了覆盖target

Pattern#matcher(target)接受CharSequenceString#matches()String进行操作。如果target.toString()返回的字符串不等于target的实际内容,则结果可能会有所不同。