如何使用JavaScript中的正则表达式从下一句中的两个圆括号中检索单词my
?
“这是(我的)简单文字”
答案 0 :(得分:69)
console.log(
"This is (my) simple text".match(/\(([^)]+)\)/)[1]
);
\(
正在打开大括号,(
- 子表达式的开始,[^)]+
- 除了右括号一次或多次之外的任何内容(您可能希望将+
替换为{{ 1}}),*
- 子表达式结束,)
- 结束括号。 \)
返回一个数组match()
,从中提取第二个元素。
答案 1 :(得分:13)
var txt = "This is (my) simple text";
re = /\((.*)\)/;
console.log(txt.match(re)[1]);
<强> jsFiddle example 强>
答案 2 :(得分:8)
您也可以尝试非正则表达式方法(当然,如果有多个这样的括号,它最终将需要循环或正则表达式)
init = txt.indexOf('(');
fin = txt.indexOf(')');
console.log(txt.substr(init+1,fin-init-1))
答案 3 :(得分:3)
适用于希望在多个方括号中返回多个文本的人
var testString = "(Charles) de (Gaulle), (Paris) [CDG]"
var reBrackets = /\((.*?)\)/g;
var listOfText = [];
var found;
while(found = reBrackets.exec(testString)) {
listOfText.push(found[1]);
};
答案 4 :(得分:0)
在圆括号内返回多个项目
var res2=str.split(/(|)/);
var items=res2.filter((ele,i)=>{
if(i%2!==0) {
return ele;
}
});
答案 5 :(得分:0)
从字符串公式中获取字段。
var txt = "{{abctext/lsi)}} = {{abctext/lsi}} + {{adddddd}} / {{ttttttt}}";
re = /\{{(.*?)\}}/g;
console.log(txt.match(re));
答案 6 :(得分:0)
使用它来获取最近的 (
和 )
之间的文本:
const string = "This is (my) (simple (text)"
console.log( string.match(/\(([^()]*)\)/)[1] )
console.log( string.match(/\(([^()]*)\)/g).map(function($0) { return $0.substring(1,$0.length-1) }) )
结果:my
和 ["my","text"]
。
说明
--------------------------------------------------------------------------------
\( '('
--------------------------------------------------------------------------------
( group and capture to \1:
--------------------------------------------------------------------------------
[^()]* any character except: '(', ')' (0 or
more times (matching the most amount
possible))
--------------------------------------------------------------------------------
) end of \1
--------------------------------------------------------------------------------
\) ')'