Как дать диапазон в положительном взгляде в регулярных выражениях - PullRequest
1 голос
/ 10 ноября 2019
import re
re.findall(r'(?i)(?<=\b[a-z]{4})\d+', 'abcd1234  EFGHI4567')

My Out

['1234']

Мне нужно указать диапазон {4,5}, если я даю re.findall(r'(?i)(?<=\b[a-z]{4,5})\d+', 'abcd1234 EFGHI4567'), так что out будет ['1234','4567'] Я получаю ошибку просмотра позадиошибка.

Как преодолеть ситуацию

1 Ответ

2 голосов
/ 10 ноября 2019

Я не думаю, что Python поддерживает внешний вид переменной ширины (насколько мне известно, только C # поддерживает его). Я бы перефразировал ваш поиск по регулярному выражению без заглядывания как:

inp = "abcd1234 bla123 EFGHI4567"
matches = re.findall(r'\b[A-Za-z]{4,5}(\d+)\b', inp)
print(matches)

Это печатает:

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