【问题标题】:merge / join regular expression results for highlighting合并/加入正则表达式结果以突出显示
【发布时间】:2023-03-31 21:44:01
【问题描述】:

我想加入/合并正则表达式的结果。

例如,这是字符串

hello foo bar

模式/el/ => el的正则表达式结果
模式 /llo\sfo => llo fo 的正则表达式结果

如果我使用管道,结果只有一个匹配。
对于这个模式/el|llo\sfo/,结果只有el

我想要的结果应该是ello fo
该用例用于突出显示文本中的多个模式。

【问题讨论】:

  • 问题是匹配不能重叠(即使使用全局g 修饰符)。我猜你必须独立搜索模式。

标签: javascript regex highlight highlighting


【解决方案1】:

Regex 引擎只处理字符串一次。角色被消耗后,将无法再次处理(环顾不计算在内,因为它们“只是查看”)。

由于您的模式需要在示例字符串上“重叠”,因此它们永远不会匹配在一起(在一个正则表达式中)。但是,他们会使用全局标志 g 和以下输入:

"helllo foo bar".match(/el|llo\sfo/g)

因此,唯一的解决方案是为您的目的使用两个单独的正则表达式。

【讨论】:

    猜你喜欢
    • 2021-06-01
    • 2017-01-19
    • 1970-01-01
    • 2017-05-11
    • 1970-01-01
    • 2012-01-13
    • 2020-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多