-1

为什么这在 Java 中是错误的?

Pattern.matches("\\A[/0-9]","2 z CEA|B2 z E^")

编辑:我试过了:(这样我也可以赶上新台词)

Pattern.matches("\\A[/0-9][.\\s]*?","2 z\n CEA|B2 z E^)

但它不起作用。我怎么能抓住这样的东西?

4

3 回答 3

3

因为在 Java 中,该matches方法会尝试匹配整个字符串。你需要find

Pattern.compile("\\A[/0-9]").matcher("2 z CEA|B2 z E^").find()

(请参阅的 JavadocPattern.matches()的 JavadocMatcher.matches()的 JavadocMatcher.find()。)

于 2012-10-25T00:31:55.833 回答
1

它只匹配第一个数字 2 而不是整个字符串,所以它是错误的

于 2012-10-25T00:33:42.437 回答
0

问题是.matches()与整个字符串进行比较,因此模式必须匹配它。尝试这个:

Pattern.matches("\\A[/0-9].*?","2 z CEA|B2 z E^")

允许更多的.*?东西在行尾。使用*?量词使其选择最少数量的字符。

于 2012-10-25T00:36:20.593 回答