我尝试使用以下RegExp来转义括号和内部的东西。 以下是示例字符串:
hjdsoghbesi (saeogbesor) serogberso ersberawsewf(edsrgb) sfdrobersb ouersber
我希望结果代码是
hjdsoghbesi serogberso ersberawsewf sfdrobersb ouersber
我尝试使用以下内容:
myString.replace(/\(.*\)/g,"")
然而,这集中在第一个开放式支架和最后一个关闭支架上并给了我:
hjdsoghbesi sfdrobersb ouersber
我怎样才能达到我想要的效果?
如果您打算回答,请告诉我为什么您的RegExp可以达到我的目的,因为我不熟悉RegExp。
答案 0 :(得分:1)
使用非贪婪量词:
var str = "hjdsoghbesi (saeogbesor) serogberso ersberawsewf(edsrgb) sfdrobersb ouersber";
console.log(str.replace(/\(.*?\)/g, ""));
*
贪婪,它会匹配尽可能多的字符。
*?
是懒惰的,它会尽可能少地匹配。
答案 1 :(得分:0)
除了Oriol的回答,我还看到了以下可能性。使用[^\)]
代替.
:myString.replace(/\([^\)]*\)/g,"")
。 [^\)]
匹配除)
以外的所有字符。 []
列出了匹配的字符,此时^
会将它们反转,以便除了列出的字符之外的所有字符都匹配。