正则表达式匹配除2位数以外的所有内容
问题描述:
我遇到了正则表达式的问题,它匹配除中间的2位数字之外的所有内容。正则表达式匹配除2位数以外的所有内容
实施例:
输入:40442**75**22123456
匹配度:75
允许:4044273xxxxxxxx
,4044255xxxx
等。
我的表达式是:[0-9]{5}[0-68-9]{1}[0-46-9]{1}[0-9]{8}
它适用于完全匹配,但在例外情况下失败。
答
如果您只想在该位置使用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}
你是什么意思它没有异常的情况?这些数字是否符合预先确定的要求,还是至少始终处于相同的位置?您决定要删除哪些数字的标准是什么? – Harrison
除了中间的东西外,你无法匹配所有东西。你需要得到前5个,然后将该值与最后8个数字连接起来?用'^(\ d {5})\ d {2}(\ d {8})$'捕获这两个组并将它们连接起来。 –
您正在使用哪种正则表达式引擎,并且您在该引擎上设置了哪些修饰符? –