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

У меня есть строка, s="abaaaababbb".

Я использую метод findall, и я хочу знать все вхождения (ab)+. Код, который я использую:

import re
s = "abaaaababbb"
x = re.findall("[ab]+",s)
print(x)

Выход: ['abaaaababbb']

Вместо этого я хотел вывод как: ['ab' , 'abab']

Как написать правильное регулярное выражение для того же?

1 Ответ

2 голосов
/ 03 июля 2019

Регулярное выражение, которое вы упомянули в своем вопросе ((ab)+), почти правильно.

Вам просто нужно сделать группу захвата не захватывающей:

(?:ab)+

Этопотому что findall вернет все группы (в отличие от всех совпадений), если у вас есть какие-либо группы захвата в регулярном выражении.

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