【发布时间】:2017-02-19 00:33:10
【问题描述】:
我想从整个文本中重复字符串的长文本中检索最短匹配。但是,在已匹配的文本中找不到匹配项。
这是我所面临问题的简化版本:
- 代码:
"ababc".match(/a.+c/g) - 观察结果:
["ababc"] - 预期结果:
["ababc", "abc"]
因此,我想知道是否有比手动编写递归代码在匹配项中搜索更简单的方法来检索子字符串 "abc"。
【问题讨论】:
-
你将如何处理
ababcabc,你想要所有可能的排列还是通常的overlapping match handling足够了? -
我认为这个问题不能单独用正则表达式解决。正则表达式引擎仅在必要时放弃匹配的字符,以满足模式的其余部分。 “此匹配更短”不是该条件的一部分
-
@SebastianProske 最终目标是找到最短匹配,因此它只需要在您的示例中找到
["abc", "abc"]- 不需要所有排列。如您链接到的问题的答案之一中所述,修改“lastIndex”属性看起来非常好,因此感谢您的链接。
标签: javascript regex