在括号中捕获文本时忽略空格

时间:2018-01-09 11:30:15

标签: javascript regex

我设法将文本放在( )括号内。此外,我能够修剪前导空格,但我无法摆脱尾随空格。

对于文字node ( t-vr0wkjqky55s9mlh2rtt0u301(asdad) ) { }

我的正则表达式\(\s*(.*)\)正在返回 t-vr0wkjqky55s9mlh2rtt0u301(asdad) / (注意尾随空格并忽略/

这是正在运行的代码source code

问题的实例:

var str = "node     (    t-vr0wkjqky55s9mlh2rtt0u301(asdad)   ) { }";
var rex = /\(\s*(.*)\)/;
console.log("[" + rex.exec(str)[1] + "]");

2 个答案:

答案 0 :(得分:2)

您可以使用

/\(\s*(.*\S)\s*\)/

请参阅regex demo

<强>详情

  • \( - (
  • \s* - 0+空白字符
  • (.*\S) - 第1组:除了换行符之外的任何0 +字符,尽可能多(.*),然后是任何非空白字符(可能代替\S },[^)\s] / [^()\s]可以更好地排除匹配的括号)
  • \s* - 0+空白字符
  • \) - )

更新了代码段:

var str = "node     (    t-vr0wkjqky55s9mlh2rtt0u301(asdad)   ) { }";
var rex = /\(\s*(.*\S)\s*\)/;
console.log("[" + rex.exec(str)[1] + "]");

答案 1 :(得分:0)

使用此\(\s*(\S*)\s*\)

var str = "node     (    t-vr0wkjqky55s9mlh2rtt0u301(asdad)   ) { }";
var rex = /\(\s*(\S*)\s*\)/;
console.log("[" + rex.exec(str)[1] + "]");