RegEx, чтобы соответствовать всему, включая последние скобки

У меня есть строка текста, как это:

Боб Смит (Утвердить) Запрос рассмотрен 27.04.2016 (Боб Смит) Веселитесь на каникулах!

И я хочу использовать регулярное выражение для сопоставления всего, вплоть до последних скобок, в том числе:

Боб Смит (Утвердить) Запрос рассмотрен 27.04.2016 (Боб Смит)

В конце концов я собираюсь использовать это регулярное выражение, чтобы заменить текст до и включая последние круглые скобки ничем, чтобы возвращался только комментарий в конце. (Было бы легче сопоставить часть после последних скобок [см. Ниже], но я использую другой подход, основанный на причуде в программе, которую я использую.)

Я нашел этот вопрос на SO, который спрашивает о том, как найти все после последней косой черты: Регулярное выражение для получения всего после последней косой черты. Ответ:

([^/]+$)

Тем не менее, мне нужно изменить это регулярное выражение, чтобы найти все ДО И ВКЛЮЧАЯ последние ПАРЕНТЫ. Я пытался изменить это:

(^[^)]+) 

но это находит все до, но не включая первые скобки.

Как я могу изменить это, чтобы соответствовать всему, включая последние скобки?

Смотрите этот RegExr в качестве примера: http://regexr.com/3dahe

1 ответ

Решение

Я хочу использовать регулярное выражение, чтобы соответствовать все до и включая последние скобки

Вам просто нужно жадное сопоставление точек:

^.*\)\s*

Посмотреть демо-версию регулярного выражения

Используйте модификатор DOTALL, если на входе есть символы новой строки.

Детали шаблона:

  • ^ - начало строки
  • .* - любые символы 0+, кроме новой строки до последнего
  • \) - закрывающие скобки
  • \s* - 0+ пробелов.
Другие вопросы по тегам