Страницы

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

понедельник, 27 мая 2019 г.

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

Добрый день. Подскажите, могу ли я итерироваться по элементам строки? Например есть строка а = 'qqqq 12qw3 12 12345', отсюда необходимо вытащить элемент, который будет числом и длина которого будет больше 4х символов. Возможно, стоит использовать модуль re, но я не могу понять, как задать в нём условие выбора элемента по его длине.


Ответ

Строка:
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']

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

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