首页  >  问答  >  正文

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

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

例如对于正则表达式 /abc([D-F]+)gh([I-K]+)/ 和输入 abcFEEDghKIKI,我想要输出 "FEEDKIKI" ,因为这些是捕获的部分。

但是,输入正则表达式也可以是 /([a-zA-Z]+)/,对于相同的输入,它只会返回原始文本。

如果正则表达式为 /([0-9]+)/ 则将返回空字符串。

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

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

我假设有某种方法可以通过传递给 replace() (或类似)的回调来完成此操作,但不清楚如何/是否可以获取捕获组的索引(或在 JS 中是否有必要)。

本质上,我试图复制您可以通过 Java 中的 MatchResult API 执行的操作,其中可以迭代组,并且可以找到捕获组的开始/结束索引。< /p>

提前致谢!

P粉574695215P粉574695215276 天前367

全部回复(1)我来回复

  • P粉071626364

    P粉0716263642024-01-17 15:46:08

    发现: 如何访问JavaScript 正则表达式? 看起来(至少最初)使用 exec() 会做我想要的事情。

    回复
    0
  • 取消回复