有人可以解释为什么下面的java语句返回false吗?
boolean results = "123/#".matches("\\d/#")
我试图转义正斜杠和井号,但是这被标记为多余。
答案 0 :(得分:1)
String.matches()需要 full 字符串来匹配正则表达式,就好像它与^ ... $
绑定一样。因此,假设您实际上是在这里测试正则表达式^\d/#$
。
要允许字符串在之前/之后包含其他任何内容,必须使用.*
(任何方式)在正则表达式中明确允许它,例如:
boolean results = "123/#".matches(".*\\d/#.*")
答案 1 :(得分:0)
\d
匹配一个数字,如果要匹配1个或多个,请添加一个量词\d+
。
boolean results = "123/#".matches("\\d+/#")