Соответствие двум алфавитам в регулярных выражениях - PullRequest
0 голосов
/ 06 января 2019

Как сопоставить строку с двумя буквенными символами, которые соответствуют N и R.

import re

string = 'vvvEX(1)35-5'
print(re.search(r'(N|R|[EX])\([0-9]\)\S*', string)[0])
# X(1)35-5
# expected output: EX(1)35-5

1 Ответ

0 голосов
/ 06 января 2019

[EX] соответствует одной E или одной X, а вы хотите соответствовать EX подстроке.

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

(?:EX|[NR])\(\d+\)\S*
^^^^^^^^^^^

См. Демоверсию regex

Детали

  • (?:EX|[NR]) - группа без захвата, соответствующая либо EX, N или R (аналогично (?:EX|N|R))
  • \( - ( char
  • \d+ - 1 или более цифр
  • \) - ) char
  • \S* - 0 или более непробельных символов.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...