我想删除句子中所有括号之间的字符串。
输入:他(她)希望(欲望)删除(删除)中间的文本 所有括号。
输出:他希望删除所有文本 括号中。
我尝试使用\(。* \)正则表达式,但它提供的输出如下:他在所有括号之间发短信。对此可能适当的正则表达式是什么?
答案 0 :(得分:3)
那是因为.*
是greedy
这意味着正则表达式引擎会在匹配模式时尝试匹配尽可能多的字符。
解决方案 - :
使用此正则表达式模式 - \(.*?\)
代替\(.*\)
这将使正则表达式引擎匹配匹配模式所需的最小字符数。
答案 1 :(得分:2)
另一种解决方案是:
\([^)]*\)
这意味着:
答案 2 :(得分:1)
答案 3 :(得分:0)
使用此功能。
var str = "He (she) wants (desires) to remove (delete) text in between all parentheses.";
alert(str.replace(/\s*\(.*?\)\s*/g, ' '));