0
够搞笑(或没有)在Java中比赛VAR值为true,但是在android系统它不:java和android之间的模式匹配差异?
CharSequence target = "man on";
boolean match = target.toString().matches("(\\p{L}\\p{L}+-?\\s?\\p{L}+)+");
任何想法,为什么出现这种情况?
谢谢。
聚苯乙烯:我通过导入和使用Matcher工作。
Pattern pattern = Pattern.compile("(\\p{L}\\p{L}+-?\\s?\\p{L}+)+");
Matcher matcher = pattern.matcher(target);
然后matcher.matches()在“man on”上的计算结果为true。
为什么你在'String'上调用'toString'? – fabian
必须是android实现'String.matches'的方式,因为基本上只是内联了'String.matches'在第二种情况下的工作方式(http://grepcode.com/file/repository.grepcode.com /java/root/jdk/openjdk/6-b14/java/lang/String.java#2101) –
@fabian:对不起,我在这里粘贴了代码,编辑得很差。在Android应用程序中没有 'String target =“man on”' 目标实际上是一个CharSequence .. :) 其实我只是测试它,第二个适用于“man on”,但不适用“moon on man” 。 ()+或?应该是这种情况。 当然在browxy.com上 'boolean bla = args [0] .toString()。matches(“(\\ p {L} \\ p {L} + - ?\ s?\\ p {L } +)+“);' 甚至适用于”月球上的男人bla鱼“.. – cristian