在尝试匹配以下模式时:
String regex_2 = "w+ w+ [d-]{10}";
System.out.println("Dev Anand 98-76-543210".matches(regex_2));
Run Code Online (Sandbox Code Playgroud)
我得到false了输出.这是为什么 ?
如果要匹配数字,则需要\d,而不是d字符类.同样的,你还需要\w,而不是w匹配"字"字.最后,你的号码是12个字符长(10个数字加上两个破折号),而不是10.把它放在一起,这应该工作:
String regex_2 = "\\w+ \\w+ [\\d-]{12}";
System.out.println("Dev Anand 98-76-543210".matches(regex_2));
Run Code Online (Sandbox Code Playgroud)
(请注意,\当Java字符串文字的一部分需要加倍时,单个\字符串最终会出现.字符文字'\\'也是如此:是一个\字符.)