^[^\d].*
将返回true。 [^\d].*
似乎与^[^\d].
的工作方式相同但它们之间有何不同?
哪个字符串可以匹配^[^\d].*
但不匹配[^\d].*
?
答案 0 :(得分:6)
这取决于您使用matches()
还是Matcher.find()
[^\d].*
匹配一个不是数字的字符,然后匹配直到行尾的所有内容:例如,abc
。^
锚点断言我们位于字符串的开头。因此,^[^\d].*
匹配,从行的开头开始,一个字符不是数字,然后是直到行尾的任何内容。它会匹配abc
行,但与此行abc
上的1 abc
不匹配:matches()
matches()
方法,如果模式匹配整个字符串(它不搜索潜在的子字符串匹配),则matches()
匹配将没有区别。使用^
与使用完全锚定$
和Matcher.find()
<强>参考强>