Java 边界匹配正则表达式
为什么这在Java中是错误的Java 边界匹配正则表达式,java,regex,Java,Regex,为什么这在Java中是错误的 Pattern.matches("\\A[/0-9]","2 z CEA|B2 z E^") 编辑: 我试过:(这样我也能赶上新台词) 但它不起作用。如何捕获这样的内容?因为在Java中,匹配方法试图匹配整个字符串。您需要查找: Pattern.compile("\\A[/0-9]").matcher("2 z CEA|B2 z E^").find() (请参见和。)它只匹配第一个数字2,而不匹配整个字符串,因此为false问题在于.matches()与整个字符
Pattern.matches("\\A[/0-9]","2 z CEA|B2 z E^")
编辑:
我试过:(这样我也能赶上新台词)
但它不起作用。如何捕获这样的内容?因为在Java中,
匹配方法试图匹配整个字符串。您需要查找:
Pattern.compile("\\A[/0-9]").matcher("2 z CEA|B2 z E^").find()
(请参见和。)它只匹配第一个数字2,而不匹配整个字符串,因此为false问题在于.matches()
与整个字符串进行比较,因此模式必须匹配它。试试这个:
Pattern.matches("\\A[/0-9].*?","2 z CEA|B2 z E^")
*?
允许在行的末尾添加更多的内容。对量词使用*?
可以选择最小数量的字符。如何包含新行?我尝试了“\\A[/0-9][.\\s]*?”
,但默认情况下,它不起作用。类匹配除换行以外的所有内容。您可以在正则表达式的开头包含一个(?s)
,以将匹配置于“单行模式”,其中。不匹配行尾字符<代码>(?s)\\\A[/0-9].*?
。特殊字符在[]部分中的工作方式不同,它们只是字符。。。不特别。类[.\\s]
表示匹配“.”、“\”或“s”。
Pattern.matches("\\A[/0-9].*?","2 z CEA|B2 z E^")