什么是最好的正则表达式用于返回一些电话号码,但不是全部?

时间:2014-06-10 12:30:44

标签: regex

我是初级正则表达式的新手,并处理的内容将返回所有英国电话号码,区号仅为01020307 。它必须不会查找0809。它还必须考虑到不同的分组样式。但这里是踢球者...它必须是80个字符或更少。

这是我最好的镜头:

(01|02|03|07|44\D*1|44\D*2|44\D*3|44\D*7|)(\d\D*){9}

问题在于它返回任何9位数或更少的数字,我无法弄清楚原因。

任何帮助都会很棒!

1 个答案:

答案 0 :(得分:1)

(01|02|03|07|44\D*1|44\D*2|44\D*3|44\D*7)匹配044\D*后跟1237,这简化为:

(?:44\D*|0)[1237]

将其与剩下的一起给出:

(?:44\D*|0)[1237](\D*\d\D*){9}

Regular expression visualization

Debuggex Demo