我有一行 Java 代码
System.out.println("...Somtime".matches("^[^a-zA-Z]"));
返回错误。为什么?任何人都可以帮忙吗?
String#matches
两端匹配,因此您的模式应覆盖完整的字符串。而且你也不需要(Caret - ^)
在一开始就给那些锚。它是隐含的。
现在,由于您的前三个字符匹配 - [^a-zA-Z]
,而后面的字符匹配 - [a-zA-Z]
。
所以,可能你想要: -
"...Somtime".matches("[^a-zA-Z]{3}[a-zA-Z]+")
String.matches("regex")
此方法会将正则表达式与整个字符串进行匹配。如果字符串匹配正则表达式,它将返回true
,false
否则
System.out.println("...Somtime".matches("^[^a-zA-Z]{3}[a-zA-Z]+"));
这里是你使用的三个点 {3} 和这个返回true
System.out.println("Somtime".matches("^[^a-zA-Z]"));
它返回false