正则表达式 - 如何删除括号内的字符串?

Rex*_*xha 3 javascript regex

我想删除括号和方括号内的所有单词.我正在使用这个正则表达式,但它只删除括号内的单词.它不适用于方括号......

var str = 'hey [xx] (xhini) rexhin (zzz)';
var r = str.replace(/ *\([^)]*\)*\] */g, '');
Run Code Online (Sandbox Code Playgroud)

r 应该 hey rexhin

有什么建议?

anu*_*ava 6

你可以使用这个正则表达式:

var str = 'hey [xx] (xhini) rexhin (zzz)';
var r = str.replace(/(\[.*?\]|\(.*?\)) */g, "");
//=> hey rexhin
Run Code Online (Sandbox Code Playgroud)
  • \[.*?\] 会在里面找到方括号和字符串
  • \(.*?\) 会在其中找到圆括号和字符串

您也可以使用(如果方括号和圆括号不嵌套):

var r = str.replace(/[(\[].*?[)\]] */g, "");
Run Code Online (Sandbox Code Playgroud)
  • [(\[]是一个找到(或的字符类[
  • [)\]]是一个找到)或的字符类]

您也可以调用trim()尾随空格.