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

Javascript 正则表达式-如何删除括号内的字符串?,javascript,regex,Javascript,Regex,我想删除括号和方括号内的所有单词。 我使用这个正则表达式,但它只删除括号内的单词。它不适用于方括号 var str = 'hey [xx] (xhini) rexhin (zzz)'; var r = str.replace(/ *\([^)]*\)*\] */g, ''); r应该是hey rexhin 有什么建议吗?您可以使用此正则表达式: var str = 'hey [xx] (xhini) rexhin (zzz)'; var r = str.replace(/(\[.*?\]|\(

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

var str = 'hey [xx] (xhini) rexhin (zzz)';
var r = str.replace(/ *\([^)]*\)*\] */g, '');
r
应该是
hey rexhin


有什么建议吗?

您可以使用此正则表达式:

var str = 'hey [xx] (xhini) rexhin (zzz)';
var r = str.replace(/(\[.*?\]|\(.*?\)) */g, "");
//=> hey rexhin
  • \[.*?\]
    将在其中找到方括号和字符串
  • \(.*?\)
    将在括号内找到圆括号和字符串
还可以使用(如果方括号和圆括号未嵌套):

  • [(\[]
    是一个字符类,用于查找
    [
  • [)\]
    是一个字符类,用于查找
    ]

您可以调用
trim()
来修剪尾随空格。

您可以尝试下面的正则表达式

> var str = "[xxx] hey [xx] (xhini) rexhin (zzz)";
undefined
> str.replace(/^(?:\[[^\]]*\]|\([^()]*\))\s*|\s*(?:\[[^\]]*\]|\([^()]*\))/g, "")
'hey rexhin'

  • ^(?:\[[^\]*\]\\]\\([^()]*\)\s*
    将匹配括号以及开头(行首)的以下空格

  • |

  • \s*(?:\[^\]*\]\\[^()]*\)
    匹配所有剩余的括号及其前面的空格

> var str = "[xxx] hey [xx] (xhini) rexhin (zzz)";
undefined
> str.replace(/^(?:\[[^\]]*\]|\([^()]*\))\s*|\s*(?:\[[^\]]*\]|\([^()]*\))/g, "")
'hey rexhin'