【问题标题】:Can find "15" in "155", but not "55" [duplicate]可以在“155”中找到“15”,但找不到“55”[重复]
【发布时间】:2022-01-12 18:02:43
【问题描述】:

表达式/\d5/g,匹配“155”中的“15”,但不匹配“55”。

如何修改表达式,使其与“155”中的“15”和“55”匹配?


显然,我必须做一些称为“前瞻断言”的事情。

let str = '155';
let regEx = /(?=(\d5))/g;
let matches = str.matchAll(regEx);

【问题讨论】:

  • Regex 没有定义匹配重叠匹配的方法,因此并非所有解析器都支持它。你使用的是什么解析器(即你在哪里使用你的正则表达式)?
  • Javascript。节点 v15.9。
  • 是的。这就解释了前瞻断言。

标签: regex-greedy


【解决方案1】:

我不知道你的解析器,但也许你不得不说,“5”可以出现更多次。

类似这样的:

let regEx = /(?=(\d5)*)/g;

【讨论】:

    猜你喜欢
    • 2020-12-08
    • 2016-05-09
    • 2020-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-27
    • 1970-01-01
    相关资源
    最近更新 更多