我已经在用连字符或空格连接的匹配数字中有正则表达式模式,但是我想要不匹配或有四位数的前瞻
e.g
“123232-453253-535-23”匹配应为“123232-453253-5”
“123-452-3233-2”匹配应为“123-452-3”
简单地说,我想做的是忽略最后四个数字。
我目前的模式是
(\d[ \d-]{3,}\d)(?=[ \d-]{4})
现在这个对于下面的例子是正确的。当最后四个字符中没有连字符或空格时
例如 123456789 匹配 12345
但是当字符串是这样的时候
1234-5678-9 我得到的是 1234-56
我想要达到的是我应该得到最后四位而不是最后四位
1234-5678-9 比赛应为 1234-5 ..
123 4567 89 比赛应 123 45
答案 0 :(得分:1)
这可能对您有用:
(\d[ \d-]{3,}\d)(?=(?:[ -]?\d){4})
基本上,前瞻是改变的,以便它匹配可选分隔符和一个数字的四个(非捕获)组,我理解你正在寻找它。