Javascript正则表达式:如何为任意正则表达式仅保留匹配的组?

问题描述 投票:0回答:1

JS 正则表达式 API 中是否有方法可以重写输入,以便仅保留匹配的组(按顺序),但这适用于任意正则表达式(包括没有捕获组的正则表达式)。

例如对于正则表达式

/abc([D-F]+)gh([I-K]+)/
和输入
abcFEEDghKIKI
我想要输出“FEEDKIKI”,因为这些是捕获的部分。

但是,输入正则表达式也可以是

/([a-zA-Z]+)/
,对于相同的输入,它只会返回原始文本。

如果正则表达式是

/([0-9]+)/
那么将返回空字符串。

正则表达式将由工具生成,但它们有很多,我不希望针对不同数量的捕获组使用特殊情况代码。

理想情况下,我也能够以某种方式访问输入中匹配的长度。

我假设有某种方法可以通过传递给

replace()
(或类似)的回调来完成此操作,但不清楚如何/是否可以获取捕获组的索引(或者在 JS 中是否有必要)。

本质上,我正在尝试复制通过 Java 中的“MatchResult”API 可以执行的操作,其中可以迭代组,并且可以找到捕获组的开始/结束索引。

提前致谢!

javascript regex regex-group
1个回答
0
投票

发现: 如何访问 JavaScript 正则表达式中的匹配组? 看起来(至少最初)使用

exec()
可以实现我想要的功能。

© www.soinside.com 2019 - 2024. All rights reserved.