Как найти один символ из нескольких одинаковых символов в строке с помощью регулярных выражений - PullRequest
0 голосов
/ 18 сентября 2018

Пример: Уважаемый сэр, Нет. Сотрудник (PM / 23333999) 10) Я хочу поблагодарить вас. (MA / IERPER) Я хочу уйти в отставку.

Привет, сэр,

regex:\ d {1,2} + (?: (\)))

результат: 10) и 99) и )

Что такое шаблон регулярных выражений, который я могу использовать, чтобы получить результат только ' 10) ' от разбиения строки?

Ответы [ 3 ]

0 голосов
/ 18 сентября 2018

Вы можете сделать это:

^.*\) (.*) i want t.*$

Но давайте улучшим регулярное выражение:

^.*\([^\)]*\) (\d+\)).*$

0 голосов
/ 18 сентября 2018

, поскольку вы говорите, что соответствует только 10), попробуйте следующее

\d{1,2}+\)(?!.*\d{1,2}+\))

демо и объяснение здесь

0 голосов
/ 18 сентября 2018

Ваш шаблон равен \d{1,2}+\), то есть ваш шаблон потребляет и возвращает ).

. Вы можете использовать

\d{1,2}(?=\))

, где (?=\)) - положительныйlookahead , который потребует наличия ), но не вернет его в матче.Также обратите внимание, что {1,2}+ здесь будет вести себя так же, как не обладающий собственностью, жадный квантификатор {1,2} (поскольку нет других способов сопоставления строки до )), поэтому нет необходимости добавлять +.

См. Демонстрационный пример regex .

В Java объявите его как

String regex = "\\d{1,2}(?=\\))";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...