Javascript 获取两个圆括号之间的文本
如何使用JavaScript中的正则表达式从下面句子中两个圆括号之间检索单词Javascript 获取两个圆括号之间的文本,javascript,regex,Javascript,Regex,如何使用JavaScript中的正则表达式从下面句子中两个圆括号之间检索单词my “这是(我的)简单文本” console.log( “这是(我的)简单文本”。匹配(/\([^)]+)\/)[1] ); 您也可以尝试非正则表达式方法(当然,如果有多个这样的括号,它最终将需要循环或正则表达式) 对于希望返回多个括号中的多个文本的任何人 var testString = "(Charles) de (Gaulle), (Paris) [CDG]" var reBrackets = /\((.*?)
my
“这是(我的)简单文本”
console.log(
“这是(我的)简单文本”。匹配(/\([^)]+)\/)[1]
);代码>
您也可以尝试非正则表达式方法(当然,如果有多个这样的括号,它最终将需要循环或正则表达式)
对于希望返回多个括号中的多个文本的任何人
var testString = "(Charles) de (Gaulle), (Paris) [CDG]"
var reBrackets = /\((.*?)\)/g;
var listOfText = [];
var found;
while(found = reBrackets.exec(testString)) {
listOfText.push(found[1]);
};
返回圆括号内的多个项目
var res2=str.split(/(|)/);
var items=res2.filter((ele,i)=>{
if(i%2!==0) {
return ele;
}
});
从字符串公式中获取字段
var txt = "{{abctext/lsi)}} = {{abctext/lsi}} + {{adddddd}} / {{ttttttt}}";
re = /\{{(.*?)\}}/g;
console.log(txt.match(re));
使用此选项可获取最接近的(
和)
之间的文本:
const string=“这是(我的)(简单的(文本)”
console.log(string.match(/\([^()]*)\)/)[1])
console.log(string.match(/\([^()]*)\)/g.map(function($0){return$0.substring(1,$0.length-1)})
你也可以使用+?
而不是[^]+
。是的,完成任务的方法有很多。+1不错,工作起来很有魅力。我想加上你添加到你的视觉解释这一点。感谢您使用.match(/\{(+?)\}/g)
如果有多个结果,请使用子字符串:txt.substring(init+1,fin)
也就是说,是的,使用非正则表达式是一个不应该低估的选项。@MichaelCrein hacker:明白您的意思了,但是,如果字符串有点像A(意味着开始然后结束,比如(my),那么即使您的正则表达式方法也不会给出正确的结果.没错。速度可能不是问题,但一般来说正则表达式匹配很耗时。@Cupidvogel,在这种情况下,问题是OP在这种情况下到底想要什么。我不清楚正则表达式给出的结果是否不正确。您可能希望将其改为[^()]
当然,但这是否正确也不清楚。是的,不仅是性能问题,而且是关于使用正则表达式做任何事情的流行趋势,如果您添加一些检查,这将使我对您的答案进行投票;-)如果我们将txt改为txt='这是(我的)(简单)文本'它正在给'我的答案)(simple'作为输出。我们可以只获取my吗?如何仅获取匹配括号内的内容?@smita将(.*)更改为(.*)以进行非贪婪匹配
var res2=str.split(/(|)/);
var items=res2.filter((ele,i)=>{
if(i%2!==0) {
return ele;
}
});
var txt = "{{abctext/lsi)}} = {{abctext/lsi}} + {{adddddd}} / {{ttttttt}}";
re = /\{{(.*?)\}}/g;
console.log(txt.match(re));