我有以下代表电话号码的数字:
- +16085551212
- +16089111212
我目前已经得到了.[0-9][2-9][0-9]{2}[2-9][0-9]{2}[0-9]{4}
适用于这两个数字的方法。
但是,我无法弄清楚不允许第 6 个和第 7 个数字为 11 的标准,以避免可能的 911 引用,如上所示。通过阅读,我预计这可能是某种形式的前瞻,但我不完全确定,也不知道如何实现现有的模式。
我假设您正在寻找一种方法来排除911
数字内的任何内容。
你可以用这样的正则表达式来做到这一点:(?!.+911.+)\+1[2-9][0-9]{2}[2-9][0-9]{2}[0-9]{4}
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}
^^^^^^^^^^