PYTHON Регулярные выражения: нечётное число-чётное число

231 просмотра
0
0 Комментариев

Есть строка с числами. Нужно написать регулярное выражение, которое, если число состоит из нечётного-чётного-нечётного-чётного… числа выводит его
Пример:

12 23 3456 789 123456 —> 12 3456 123456

Я сделал это:

print(re.findall(r'[13579][02468]',string))

Но результат не совсем тот:

12 34 56 78 12 34 56


Попробовал так:

print(re.findall(r'[13579][02468]\w+',text[0]))

Теперь результат следующий:

3456 789 123456

Почему-то пропало 12. А ещё не нужно, чтобы выводилось 789, ибо там 78 попадает под шаблон, а вот для 9 нету пары


Как доделать?


Добавить комментарий

1 Ответы

Python Опубликовано 12.12.2018
0

print(re.findall(r'\b(?:[13579][02468])+\b',string))

\b ... \b означает, что мы ищем целое «слово» (в данном случае состоящее из цифр)

([13579][02468])+ означает, что мы ищем числа, состоящие из пар нечетная-четная

?: в начале скобки означает, что она не будет запомнена

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up