Java匹配项不匹配

时间:2019-06-04 08:41:14

标签: java string

有人可以解释为什么下面的java语句返回false吗?

boolean results = "123/#".matches("\\d/#")

我试图转义正斜杠和井号,但是这被标记为多余。

2 个答案:

答案 0 :(得分:1)

Java中的

String.matches()需要 full 字符串来匹配正则表达式,就好像它与^ ... $绑定一样。因此,假设您实际上是在这里测试正则表达式^\d/#$

要允许字符串在之前/之后包含其他任何内容,必须使用.*(任何方式)在正则表达式中明确允许它,例如:

boolean results = "123/#".matches(".*\\d/#.*")

答案 1 :(得分:0)

\d匹配一个数字,如果要匹配1个或多个,请添加一个量词\d+

boolean results = "123/#".matches("\\d+/#")