正则表达式 - Java不工作

时间:2012-12-25 05:33:06

标签: java regex

我有一行Java代码

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

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

2 个答案:

答案 0 :(得分:5)

两端的

String#matches匹配,因此您的模式应覆盖整个字符串。而且您也不需要在开头给出这些锚点(Caret - ^)。这是隐含的。

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

所以,你可能想要: -

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

答案 1 :(得分:3)

String.matches("regex") 

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

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

此处有三个点,您正在使用{3},此返回true

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

它返回false