1

我有一串这样的文本:

Bob Smith(批准)请求已于 2016 年 4 月 27 日审核(Bob Smith)祝您假期愉快!

我想使用正则表达式来匹配所有内容,包括最后一个括号,这将是:

Bob Smith(批准)请求已于 2016 年 4 月 27 日审核(Bob Smith)

我最终将使用这个正则表达式来替换文本,直到并包括最后一个括号,所以只返回最后的注释。(在最后一个括号之后的部分匹配会更容易[见下文],但我正在使用基于我正在使用的程序中的怪癖的不同方法。)

我在 SO 上找到了这个问题,询问如何在最后一个正斜杠之后查找所有内容:Regular Expression for get everything after last slash。答案是:

([^/]+$)

但是,我需要修改该正则表达式以查找包括最后一个括号在内的所有内容。我试图修改为:

(^[^)]+) 

但这会找到所有内容,但不包括第一个括号。

我怎样才能改变它以匹配所有内容,包括最后一个括号?

以这个 RegExr 为例:http ://regexr.com/3dahe

4

1 回答 1

2

我想使用正则表达式来匹配所有内容,包括最后一个括号

你只需要贪婪的点匹配:

^.*\)\s*

查看正则表达式演示

如果输入中有换行符,请使用 DOTALL 修饰符。

图案细节:

  • ^- 字符串的开始
  • .*- 除了换行符之外的任何 0+ 个字符,直到最后一个
  • \)- 右括号
  • \s*- 0+ 个空格。
于 2016-04-27T19:30:00.183 回答