0

我有一个字符串可以看起来像这些Adjuster, Carrier 3 (Carrier 3)Adjuster, Carrier 3 (Carrier 3 (Test))

我想捕获第一组括号中的内容。我原来的正则表达式模式是\((.+?)\)(非贪婪的),所以我可以将文本捕获为组#1。

var selectedOwnerText = /* GET THE TEXT FROM NODE/FIELD/ETC. */, 
    carrierName = '',
    rePattern = /\((.+?)\)/;

    if (selectedOwnerText != '') {
       carrierName = selectedOwnerText.match(rePattern);
       if (carrierName != null) {
          carrierName = carrierName[1];
       }
    }
 // Rest of code...

这适用于第一个文本案例,但在第二个文本案例中,它会抓取外括号,例如(Carrier 3 (Test).

是否有一个正则表达式模式可以捕获外括号内的文本,其中也可能包括括号?我想要或者Carrier 3Carrier 3 (Test)上面提取。

编辑:我刚刚被告知这个数据字段是自由格式的文本,所以任何东西都可能出现在外括号内。所以,我需要捕获外括号内的所有内容。

编辑 2:我给了一个用户正确的答案,因为它回答了原始问题(假设只有一组内括号)。现在我知道文本可以是任何东西,Javascript 正则表达式模式是不可能的,我放弃了正则表达式方法。我深入研究了服务器端代码并​​显示了我需要的数据的 JSON 文字,因此在创建页面/Javascript 时,我可以使用数据结构来获取我需要的内容,而不必担心字符串的实际外观. 感谢所有试图提供帮助的人!

4

1 回答 1

1

当且仅当您的字符串具有格式word, word (anything inside)而不是word, word (anything inside) word (more parenthesized stuff)

/\((.+)\)/;

您将在第一个左括号和最后一个右括号内获得所有内容。

正则表达式101演示

于 2013-09-18T15:00:29.383 回答