尝试匹配以下模式时:
String regex_2 = "w+ w+ [d-]{10}";
System.out.println("Dev Anand 98-76-543210".matches(regex_2));
我得到 false
作为输出。这是为什么?
最佳答案
如果要匹配数字,则需要字符类中的\d
,而不是d
。同样,您还需要 \w
而不是 w
来匹配“word”字符。最后,您的号码长度为 12 个字符(10 个数字加两个破折号),而不是 10 个。将其放在一起,应该可以正常工作:
String regex_2 = "\\w+ \\w+ [\\d-]{12}";
System.out.println("Dev Anand 98-76-543210".matches(regex_2));
(请注意,当 \
是 Java 字符串文字的一部分时,需要加倍,以便单个 \
出现在字符串中。字 rune 字也是如此: '\\'
是单个 \
字符。)
关于java - 为什么会出现模式不匹配的情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15049222/