我有一行Java代码
System.out.println("...Somtime".matches("^[^a-zA-Z]"));
哪个返回false.为什么?任何人都可以帮忙吗?
String#matches两端匹配,因此您的模式应覆盖整个字符串.而且你也不需要(Caret - ^)在开始时给这些锚点.这是隐含的.
现在,因为你的前三个字符匹配 - [^a-zA-Z]而后面的字符匹配 - [a-zA-Z].
所以,你可能想要: -
"...Somtime".matches("[^a-zA-Z]{3}[a-zA-Z]+")
Run Code Online (Sandbox Code Playgroud)