Javascript 使用正则表达式获取包装字符串

Javascript 使用正则表达式获取包装字符串,javascript,regex,Javascript,Regex,考虑以下几点: 'aaa (d) ddd (xc) ' 如何使用just match函数获得以下结果: ["d","xc"] 我尝试了'aaa(d)ddd(xc)'.match(/\(.*?\)/g)但它返回:[“(d)”,“(xc)”]因为JavaScript不支持“向后看”,所以可以执行以下操作: var a = 'aaa (d) ddd (xc)'.match(/\(.*?(?=\))/g); for (var i = 0; i < a.length; i++) a[i]

考虑以下几点:

'aaa (d) ddd (xc) '
如何使用just match函数获得以下结果:

["d","xc"]

我尝试了
'aaa(d)ddd(xc)'.match(/\(.*?\)/g)
但它返回:
[“(d)”,“(xc)”]

因为JavaScript不支持“向后看”,所以可以执行以下操作:

var a = 'aaa (d) ddd (xc)'.match(/\(.*?(?=\))/g);

for (var i = 0; i < a.length; i++)
  a[i] = a[i].slice(1);
var a='aaa(d)ddd(xc)'.match(/\(.*?(?=\)/g);
对于(变量i=0;i
您可以使用
替换
而不是
匹配
来执行此操作。我今天回答了一个问题:


稍微调整一下Korikulum的正则表达式

如果指定的内容不是打开括号的内容,而不是任何内容
*

'aaa (d) ddd (xc) (more) text'.match(/[^\(]+(?=\))/g) // >> ["d", "xc", "more"]

作为补充说明,为什么不使用类似的正则表达式:
\(.*)
?@Blender,因为它返回
[“(d)”,“d”]
@Reza:不可能,因为JS没有后视功能。要返回“d”和“xc”,括号不能作为匹配的一部分使用,但仍然需要断言开始括号,因此这是不可能的。
'aaa (d) ddd (xc) (more) text'.match(/[^\(]+(?=\))/g) // >> ["d", "xc", "more"]