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"]