我有以下代表电话号码的数字:


+16085551212
+16089111212


我目前有.[0-9][2-9][0-9]{2}[2-9][0-9]{2}[0-9]{4}适用于两个数字。

但是,我无法弄清楚不允许将第六和第七数字设为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/

10-12 20:51