Страницы

Поиск по вопросам

воскресенье, 8 марта 2020 г.

Итерация по элементам строки: вытащить элемент, который будет числом и длина которого будет больше 4х символов

#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']

Комментариев нет:

Отправить комментарий