#python #регулярные_выражения #итераторы
Добрый день. Подскажите, могу ли я итерироваться по элементам строки? Например есть строка а = 'qqqq 12qw3 12 12345', отсюда необходимо вытащить элемент, который будет числом и длина которого будет больше 4х символов. Возможно, стоит использовать модуль re, но я не могу понять, как задать в нём условие выбора элемента по его длине.
Ответы
Ответ 1
Строка: In [56]: a = 'qqqq a987654xx321aa 12qw3 12 12345 zz 1234567' Если необходимо вернуть только первое число длина которого больше 4х символов: In [72]: re.search(r'\b(\d{5,})\b', a).group(0) Out[72]: '12345' Вариант не использующий RegEx: In [68]: [s for s in a.split() if s.isdecimal() and len(s) > 4][0] Out[68]: '12345' Если необходимо вернуть все числа длина которых больше 4х символов: In [57]: re.findall(r'\b(\d{5,})\b', a) Out[57]: ['12345', '1234567'] или так, если считать числом 987654 присутствующим в a987654xx321aa: In [58]: re.findall(r'(\d{5,})', a) Out[58]: ['987654', '12345', '1234567']
Комментариев нет:
Отправить комментарий