繁体   English   中英

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

[英]Regex - How to remove strings inside brackets?

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

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
  • \\[.*?\\]会在其中找到方括号和字符串
  • \\(.*?\\)会在其中找到圆括号和字符串

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

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

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

你可以试试下面的正则表达式。

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

DEMO

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

  • | 要么

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM