我设法将文本放在(
)
括号内。此外,我能够修剪前导空格,但我无法摆脱尾随空格。
对于文字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] + "]");
答案 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] + "]");