Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取两个圆括号之间的文本_Javascript_Regex - Fatal编程技术网

Javascript 获取两个圆括号之间的文本

Javascript 获取两个圆括号之间的文本,javascript,regex,Javascript,Regex,如何使用JavaScript中的正则表达式从下面句子中两个圆括号之间检索单词my “这是(我的)简单文本” console.log( “这是(我的)简单文本”。匹配(/\([^)]+)\/)[1] ); 您也可以尝试非正则表达式方法(当然,如果有多个这样的括号,它最终将需要循环或正则表达式) 对于希望返回多个括号中的多个文本的任何人 var testString = "(Charles) de (Gaulle), (Paris) [CDG]" var reBrackets = /\((.*?)

如何使用JavaScript中的正则表达式从下面句子中两个圆括号之间检索单词
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));