сопоставлять все до самой длинной последовательности строчных букв - PullRequest
1 голос
/ 26 сентября 2019

Скажите, что у меня есть следующие выражения: 4a1.602.9015zetjre735pA.
Я хочу сопоставить все, что находится перед самой длинной последовательностью строчных букв (то есть 4a1.602.9015).

При некотором поиске я нашел это регулярное выражение: re.search(r'.+?(?=[a-z]{2,})', expression).
За исключением того, что в общей ситуации самая длинная последовательность строчных букв не имеет фиксированной длины (это может быть 2, 3,или больше букв).Это означает, что возможно иметь такие выражения: 4afj1.602.9015zmpetjre735pA.И в этом случае мое регулярное выражение не будет работать (используя мое регулярное выражение с предыдущим выражением, результат будет просто 4).

Я нашел другое решение: match = max(re.findall(r'[a-z]+', expression), key=len) затем возьмите ту часть выражения, которая перед ним (f_match = expresion[:expression.index(match)]).Но это не чистое регулярное выражение.
Есть ли какое-нибудь чистое регулярное выражение?

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