0

我有一行 Java 代码

System.out.println("...Somtime".matches("^[^a-zA-Z]"));

返回错误。为什么?任何人都可以帮忙吗?

4

2 回答 2

5

String#matches两端匹配,因此您的模式应覆盖完整的字符串。而且你也不需要(Caret - ^)在一开始就给那些锚。它是隐含的。

现在,由于您的前三个字符匹配 - [^a-zA-Z],而后面的字符匹配 - [a-zA-Z]

所以,可能你想要: -

"...Somtime".matches("[^a-zA-Z]{3}[a-zA-Z]+")
于 2012-12-25T05:34:36.617 回答
3
String.matches("regex") 

此方法会将正则表达式与整个字符串进行匹配。如果字符串匹配正则表达式,它将返回truefalse否则

System.out.println("...Somtime".matches("^[^a-zA-Z]{3}[a-zA-Z]+"));

这里是你使用的三个点 {3} 和这个返回true

System.out.println("Somtime".matches("^[^a-zA-Z]"));

它返回false

于 2012-12-25T05:46:59.387 回答