正则表达式在最外层的最后一个括号中获取内容

时间:2016-11-06 07:45:59

标签: .net regex

我有一个字符串: 示例(123)(示例(123)

我试图以粗体显示字符串。目前我有这个正则表达式: (小于???=()+(=))

正则表达式大部分时间用于将文本放在括号中,但是当嵌套括号出现多次时不会。

请告知我该如何解决这个问题。

谢谢!

3 个答案:

答案 0 :(得分:0)

你需要一个递归正则表达式才能正确匹配。这个可行:

\(\w+\s*(?R)*[^()]*\)

regex101 test

的问题:

  • 只需1个模式匹配,您将始终获得外部括号。
  • 它没有锚定到字符串的末尾。我只是不知道如何实现它。所以你需要抓住最后一场比赛。

答案 1 :(得分:0)

试试这个:

\([a-zA-Z\s]+\s\([0-9]+\)

更新的代码:

\([\w\s]*\(*[\w\s]*[()]*[\w\s]*\)\)

测试here

答案 2 :(得分:-1)

尝试以下解决方案以找到最后一次出现的括号“)”:

\)($)