我正在尝试创建一个正则表达式字符串来匹配电话号码,使用以下逻辑:
1) 对于NPA(区号),3个数字,第一个数字为[2-9],第二和第三位数字为[0-9]
2) 对于NXX(交换机 - 在NPA后的接下来的3个数字)与NPA相同规则。此外,如果第二个数字是“1”,则第三个数字不能为“1”(保留供公共服务使用)
3) 对于XXXX(号码 - 在NXX后的接下来的4个数字),每个数字为[0-9]
我已经完成了步骤1和3以及步骤2的一部分,使用以下字符串:
1) 对于NPA(区号),3个数字,第一个数字为[2-9],第二和第三位数字为[0-9]
2) 对于NXX(交换机 - 在NPA后的接下来的3个数字)与NPA相同规则。此外,如果第二个数字是“1”,则第三个数字不能为“1”(保留供公共服务使用)
3) 对于XXXX(号码 - 在NXX后的接下来的4个数字),每个数字为[0-9]
我已经完成了步骤1和3以及步骤2的一部分,使用以下字符串:
^\(?([2-9]{1})\)?([0-9]{2})?[-.*]?([2-9]{1})\)?([0-9]{2})?[-.*]?([0-9]{4})$
但我卡在了尝试将这里所述的逻辑合并到代码中:
对于NXX(交换机 - NPA之后的下3个数字),与NPA相同的规则。 此外,如果第2位数字为“1”(保留为公共服务),则第3位数字不能是“1”。
如果有人能够帮助解决这个问题,那将不胜感激。
我想要我的正则表达式匹配结果为假,而继续匹配为真。它目前同时匹配两个集合。
假: 4807119320 4805119439 4809114739
真: 4805218482 4805123848 4809128327 4809418482