【问题标题】:Regex : Match digits connected by hyphen or space with lookahead of four digits正则表达式:匹配由连字符或空格连接的数字,前瞻四位数
【发布时间】:2017-02-27 09:08:24
【问题描述】:

我已经有正则表达式模式匹配由连字符或空格连接的数字,但是我想取消匹配或提前四位数字

例如

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

  2. “123-452-3233-2”匹配应为“123-452-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

【问题讨论】:

  • 从两个字符类中删除空格

标签: regex


【解决方案1】:

这可能对你有用:

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

基本上,先行发生了变化,以匹配四个(非捕获)组的可选分隔符和一个数字,我知道这就是您要查找的内容。

【讨论】:

    猜你喜欢
    • 2021-10-14
    • 1970-01-01
    • 2021-06-03
    • 2017-07-17
    • 2015-08-14
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多