使用JavaScript Regex在字符串中查找第一个括号对之间的子字符串?

时间:2018-02-06 03:22:01

标签: javascript regex

假设我有一个字符串:

var str1 = '(The cat (goes (meow)))'

我希望得到The cat (goes (meow)),这是在第一对括号内。

我可以使用哪种正则表达式来获取它?

另一个例子:

var str2 = 'The cat (goes (meow))'

现在我想获得goes (meow)

我将如何做到这一点?

2 个答案:

答案 0 :(得分:0)

使用indexOf& lastIndexOf获得第一个(&最后)。使用substring来获取这些索引之间的文本

var str1 = '(The cat (goes (meow)))';
var str2 = 'The cat (goes (meow))';

function getSubstring(str) {
  var firstOpenBracket = str.indexOf('(');
  var firstClosingBracket = str.lastIndexOf(')');
  var getValue = str.substring(firstOpenBracket + 1, firstClosingBracket);
  console.log(getValue)
}

getSubstring(str1);
getSubstring(str2)

答案 1 :(得分:0)

您可以使用此正则表达式/\((.*)\)/来匹配最外面的括号内的所有内容。请尝试下面的代码。

var regEx = /\((.*)\)/;

var str1 = '(The cat (goes (meow)))';
var res = str1.match(regEx);
console.log(res[1]);

var str2 = 'The cat (goes (meow))';
var res = str2.match(regEx);
console.log(res[1]);