正则表达式,用于在 Javascript 中获取括号之间的字符串

2022-08-30 00:39:34

我正在尝试编写一个正则表达式,该表达式返回括号之间的字符串。例如:我想获取位于字符串“(”和“)”之间的字符串

I expect five hundred dollars ($500).

会再来的

$500

找到正则表达式,用于在 Javascript 中获取两个字符串之间的字符串

但我是正则表达式的新手。我不知道如何在正则表达式中使用'(', ')'


答案 1

您需要创建一组转义(带 )括号(与括号匹配)和一组用于创建捕获组的常规括号:\

var regExp = /\(([^)]+)\)/;
var matches = regExp.exec("I expect five hundred dollars ($500).");

//matches[1] contains the value between the parentheses
console.log(matches[1]);

故障:

  • \(:匹配左括号
  • (:开始捕获组
  • [^)]+:匹配一个或多个非字符)
  • ):结束捕获组
  • \):匹配右括号

这是关于RegExplained的视觉解释


答案 2

尝试字符串操作:

var txt = "I expect five hundred dollars ($500). and new brackets ($600)";
var newTxt = txt.split('(');
for (var i = 1; i < newTxt.length; i++) {
    console.log(newTxt[i].split(')')[0]);
}

或正则表达式(与上述相比有点慢))

var txt = "I expect five hundred dollars ($500). and new brackets ($600)";
var regExp = /\(([^)]+)\)/g;
var matches = txt.match(regExp);
for (var i = 0; i < matches.length; i++) {
    var str = matches[i];
    console.log(str.substring(1, str.length - 1));
}