正则表达式匹配除2位数之外的所有内容

时间:2016-08-23 19:46:20

标签: regex

我遇到了正则表达式的问题,它匹配除中间2位数之外的所有内容。

示例:

输入:40442**75**22123456

匹配:75

允许:4044273xxxxxxxx4044255xxxx等。

我的表达是: [0-9]{5}[0-68-9]{1}[0-46-9]{1}[0-9]{8}

它适用于完全匹配,但在例外情况下失败。

1 个答案:

答案 0 :(得分:0)

如果您只想在该位置允许75,请使用替换 将所有例外置于交替中。会有重叠,
但是会有一些不允许的。
如果是不允许的情况很少,那么使用一般的
范围与负面断言,禁止一些。即。[0-9]{2} (?<!52|74)

[0-9]{5}(?:[0-68-9][0-46-9]|75)[0-9]{8}

扩展

 [0-9]{5} 
 (?:
      [0-68-9] 
      [0-46-9] 
   |  75
   |  [0-9]5
   |  etc...
 )
 [0-9]{8}