正则表达式:将连字符或空格连接的数字与四位数的前瞻相匹配

时间:2017-02-27 09:08:24

标签: regex

我已经在用连字符或空格连接的匹配数字中有正则表达式模式,但是我想要不匹配或有四位数的前瞻

e.g

  1. “123232-453253-535-23”匹配应为“123232-453253-5”

  2. “123-452-3233-2”匹配应为“123-452-3”

  3. 简单地说,我想做的是忽略最后四个数字。

    我目前的模式是

    (\d[ \d-]{3,}\d)(?=[ \d-]{4})

    demo

    现在这个对于下面的例子是正确的。当最后四个字符中没有连字符或空格时

    例如 123456789 匹配 12345

    但是当字符串是这样的时候

    1234-5678-9 我得到的是 1234-56

    我想要达到的是我应该得到最后四位而不是最后四位

    1234-5678-9 比赛应为 1234-5 ..

    123 4567 89 比赛应 123 45

1 个答案:

答案 0 :(得分:1)

这可能对您有用:

(\d[ \d-]{3,}\d)(?=(?:[ -]?\d){4})

基本上,前瞻是改变的,以便它匹配可选分隔符和一个数字的四个(非捕获)组,我理解你正在寻找它。