正常表达式捕捉英国电话号码

时间:2015-02-06 14:14:55

标签: regex

我试图创建一个正则表达式来捕捉以下条件,但完全没有理解它(星期五)并需要一些帮助吗?

尝试捕获以区号或区号开头的英国电话号码,但不包括手机号码。

示例:01316691234或6691234,但不是以07开头的任何数字

到目前为止^[0-9]1?(\d{6,11})得到了这个,但很难排除07号码。

2 个答案:

答案 0 :(得分:1)

这是基于英国地区代码的假设:

  • 从0开始,然后是1(通常)或2(伦敦);
  • 运行至3-5位
  • 之后是6-7位长的电话号码

虽然这对我来说听起来很合理,但我没有电信套装,所以如果这个假设的任何部分出错,你需要相应修改:

/^(0[12345689]\d{1,3} ?)?\d{6,7}$/

无论哪种方式,它都是一堆蠕虫。邮政编码和电话号码不适合REGEX;你越精确,你就越有可能从明天加入新规则 - 例如如果他们从03开始推出新的区号。

答案 1 :(得分:0)

使用负面预测来防止以" 07"开头的数字匹配:

^(?!07)([0-9]1)?(\d{6,11})