我有以下代表电话号码的数字:
- +16085551212
- +16089111212
我目前有 .[0-9][2-9][0-9]{2}[2-9][0-9]{2}[0-9]{4}
适用于两个数字。
但是,我无法弄清楚第 6 个和第 7 个数字不允许为 11 的标准,以避免可能的 911 引用,如上所示。通过阅读周围的内容,我预计这可能是某种形式的前瞻,但我不完全确定,也不知道如何实现已经存在的模式。
最佳答案
C# 广泛支持环视,因此您可以开始使用。以下是如何按照您所描述的具体方式使用它们:
.[0-9][2-9][0-9]{2}[2-9](?!11)[0-9]{2}[0-9]{4}
^^^^^^
这称为否定前瞻断言。
但是,这将使您的正则表达式更加透明,尤其是对于其他人:
.(?!\d*911)[0-9][2-9][0-9]{2}[2-9][0-9]{2}[0-9]{4}
^^^^^^^^^^
关于c# - 正则表达式或不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19724205/