c# - 正则表达式或不匹配

标签 c# regex

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

  • +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/

相关文章:

c# - 了解 LINQ 中的执行

c# - 查找具有元组项的最小累积和的列表

c# - 对值类型和引用类型使用 C# LINQ 表达式

c# - 尝试执行 SQL 查询时出现无效对象错误

javascript - 在逗号中替换后跟javascript中的双引号

c# - ASP.NET Core 集成测试在本地工作,但在生产环境中运行时抛出空引用异常

第一个和第二个之间的正则表达式 "_"

python - 使用常规exp。在Python中

regex - Nutch 正则表达式没有按照我想要的方式爬行

javascript - jQuerys $.trim(),错误还是写得不好?