为什么在split()函数将字符串正确拆分为模式时,matches()函数返回false?

时间:2018-07-30 09:12:15

标签: java regex

所需输出: 爪哇 1个 8 真正 此代码产生的输出 爪哇 1个 8 假 应该怎么做才能返回真实值?输入的模式为[字符串] [点] [数字] [点] [数字]。

String st=java 1.8;
String regex="[\\s\\.]";
Pattern p=Pattern.compile(regex);
String []s2=p.split(st);
for(String a:s2)
System.out.println(a);
System.out.println(p.matches(st,regex));

} }

1 个答案:

答案 0 :(得分:1)

您正在分割字符串-因此它将在字符串上搜索该正则表达式的部分

当您使用matches(它是静态的并且参数是相反的顺序)时,您将匹配 entire 字符串。

例如:

System.out.println(Pattern.matches(regex, st));

其中regex将更改为".+[\\s\\.].+"的地方将打印true