0

我需要从具有 1-N 个括号的字符串中提取最右边的括号(最后一个)。

例如,在 Some title (8888)(123, bar)(1000, foo) 我想获取最后一组括号的内容,即1000, foo. 总会有至少一个括号,但可能不止一个。

我可以使用正则表达式或其他字符串解析技术。

4

3 回答 3

2

假设它们没有嵌套,您可以简单地执行以下操作:/\(([^\)]+)\)$/

var foo = "Some title (8888)(123, bar)(1000, foo)";
// Get your result with
foo.match(/\(([^\)]+)\)$/)[1];

演示:http ://regex101.com/r/tS2yS1

于 2013-07-20T16:38:44.337 回答
1

按照这个链接

您会看到使用该正则表达式.*\((.+)\)可以获得 $1(第一组)作为您想要的内容

于 2013-07-20T16:44:02.563 回答
0

匹配所有括号,并得到最后一个。

> 'Some title (8888)(123, bar)(1000, foo)'.match(/\(.*?\)/g).pop()
"(1000, foo)"

> var x = 'Some title (8888)(123, bar)(1000, foo)'.match(/\(.*?\)/g).pop(); x.substr(1, x.length-2)
"1000, foo"
于 2013-07-20T16:38:56.787 回答