我试图验证电话号码区号(北美),检查该号码是否以1或0开头。此外,该数字不应包括这样的保留数字(即不包括以11结尾的所有内容)。
我试过几件事,但还是没有运气。我不太擅长regex。这是我的最新尝试
\b([2-9](?!11)|[2-9][0-9]{2})\b发布于 2020-03-31 18:41:12
发布于 2020-03-31 18:47:50
无负目镜的解决方案:
([2-9][02-9][0-9]|[2-9][0-9][02-9])发布于 2020-03-31 18:50:25
这应该可以根据需要工作,包括0和1洞。
String pat = "[2-9]\\d{2}(?<!11)";
String[] data = {"123","001","212", "321", "449","811", "121", "111", "911", "099"};
for (String s : data ) {
System.out.println(s + " " + (s.matches(pat) ? "valid" : "invalid" ));
}打印
123 invalid
001 invalid
212 valid
321 valid
449 valid
811 invalid
121 invalid
111 invalid
911 invalid
099 invalidhttps://stackoverflow.com/questions/60957317
复制相似问题