Как сопоставить только первое вхождение перед произвольным символом, используя регулярное выражение в Python? - PullRequest
0 голосов
/ 11 июля 2019

У меня есть пример: s = "condition 10c of application 152301 ( materials ), condition 11 ( plans ), 2019."

И регулярное выражение, которое должно соответствовать каждому первому числу (или его небольшому варианту) перед каждой круглой скобкой, которая появляется в предложении.

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

reg = "\d+\w{0,1}(?=\s*.*?\()"
re.findall(reg, s, flags=re.I)

Как получить только 10c и 11 и пропустить 152301 с чистым регулярным выражением?

EDIT

Полагаю, я случайно обнаружил, просто измените один символ в регулярном выражении (плюс добавив группу):

reg = "(\d+\w{0,1})(?:\s*.*?\()"

Не на 100% это правильно для каждого моего случая.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...