我有一个字符串,可以看起来像这些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 3
或Carrier 3 (Test)
。
编辑2:我给了一个用户正确的答案,因为它回答了原始问题(假设只有一组内括号)。现在我知道文本可能是任何东西,Javascript正则表达式模式是不可能的,我放弃了正则表达式方法。我深入研究了服务器端代码并找到了我需要的数据的JSON文字,因此在创建页面/ Javascript时,我可以使用数据结构来获取我需要的内容,而不必担心字符串实际上是什么样的。感谢所有试图提供帮助的人!
答案 0 :(得分:1)
当且仅当您的字符串的格式为word, word (anything inside)
而非word, word (anything inside) word (more parenthesized stuff)
时,您才可以使用贪婪版本:
/\((.+)\)/;
您将获得第一个左括号和最后一个右括号内的所有内容。