Javascript 获取捕获组之间的文本

Javascript 获取捕获组之间的文本,javascript,regex,Javascript,Regex,假设给我一个正则表达式,如下所示: (\/*).*?(\*/) 使用此正则表达式,我需要转换以下文本: /* This is a comment */ 致: 正则表达式和转换规则都给了我;我不能要求不同的正则表达式格式 如果我能够可靠地将文本拆分为一系列捕获组和未捕获文本,我就可以很容易地做到这一点。但是,通常使用javascript正则表达式似乎不可能做到这一点,因为exec不保存有关单个匹配的索引的信息。有解决方案吗?例如,使用String.prototype.replace(),您可以

假设给我一个正则表达式,如下所示:

(\/*).*?(\*/)
使用此正则表达式,我需要转换以下文本:

/* This is a comment */
致:

正则表达式和转换规则都给了我;我不能要求不同的正则表达式格式


如果我能够可靠地将文本拆分为一系列捕获组和未捕获文本,我就可以很容易地做到这一点。但是,通常使用javascript正则表达式似乎不可能做到这一点,因为
exec
不保存有关单个匹配的索引的信息。有解决方案吗?

例如,使用
String.prototype.replace()
,您可以通过索引引用捕获组:

var input='/*这是一条注释*/'
变量输出=输入。替换(/(\/\*)(.*)(\*\/)/,'([$1]$2[$3]))

console.log(输出);//“([/*]这是一条注释[*/])”
使用regexp通过添加其他捕获组来转换regexp:

函数addCapture(reg){
返回新的RegExp(reg.source.replace(/\(.*?\)\[^(]*/g),
match=>match[0]=='('?match:`(${match})`),注册表标志);
}
常量regexp=/(\/\*).*(\*\/)/;
const input=“/*这是一条注释*/”;

console.log(input.replace(addCapture(regexp),“[$1]$2[$3]”);
“regex和转换规则都给了我;我不能要求不同的regex格式。”嗯…??修复正则表达式是解决此问题的正确方法。请注意,使用正则表达式处理各种语言中使用上述语法的注释很容易失败。
(*/)
不是有效的正则表达式。无法量化分组构造的开头符号。是的,上面缺少了一些转义…
(\/\*)(.*)(\*\/)
——但他说他不能更改regexp。不幸的是,这并不能解决我的问题,即使用给定的regex执行替换。
([/*] This is a comment [*/])