我正在尝试创建一个匹配任何看起来像电话号码的正则表达式。如果字符串中有多个数字,则匹配它们。电话号码定义为:
N
结尾,但可以其他字母/单词结尾所以我想匹配这些:
不允许这些:
我玩弄了负面的前瞻/后视,但我无法理解任何可理解的东西。甚至是可能的还是我应该用.NET这样的高级语言来做?
答案 0 :(得分:1)
(?:\d\s*){10,}(?![\d\s]*N)
将匹配较长字符串中的10位以上的电话号码,只要该号码后面没有N
。它允许每个数字之间的任意数量的空格。
如果您的所有电话号码始终都以0
开头,则可以在示例中明确地将其编码到正则表达式中:
\b0\s*(?:\d\s*){9,}(?![\d\s]*N)