Поиск подстрок нескольких определенных длин (поиск 5- и 6-значных чисел в строке) [дубликат]Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Поиск подстрок нескольких определенных длин (поиск 5- и 6-значных чисел в строке) [дубликат]

Сообщение Anonymous »

У меня есть вот такая =>
list_o_text= [ 'Random string 1 2 3 45 6789 999999 22222', 'Example tech report 444444' ]

Каждая строка в list_o_text содержит определенно содержит одно или несколько 5- или 6-значных чисел.
Недавно я нашел модуль RE. Однако у меня возникли проблемы с поиском подходящей функции для их поиска.
Попытайтесь с помощью findall()
import re

list_o_text= [ 'Random string 1 2 3 45 6789 999999 22222', 'Example tech report 444444' ]

for n in range(len(list_o_text)):
find = re.findall('\d{5}+',list_o_text[n])
print(find)

ВЫВОД:
['99999', '22222']
['44444']

Примечание: шестизначный номер «999999» не найден полностью

Попытка поиска( )
import re

list_o_text= [ 'Random string 1 2 3 45 6789 999999 22222', 'Example tech report 444444' ]

for n in range(len(list_o_text)):
find = re.search('\d{5}+',list_o_text[n])
print(find

ВЫВОД:



Примечание: указаны позиции, и, кроме того, диапазоны не учитывают 6-значные числа.

Попытка с помощью search().group()
import re

list_o_text= [ 'Random string 1 2 3 45 6789 999999 22222', 'Example tech report 444444' ]

for n in range(len(list_o_text)):
find = re.search('\d{5}+',list_o_text[n]).group()
print(find)

ВЫВОД:
99999
44444

Примечание: шестизначное число «999999» не найдено полностью

СВЕТЛЫЙ РЕШЕНИЕ
Я использовал все три метода, но не могу избавиться от ощущения, что все может быть проще.
ВВОД:
import re

list_o_text= [ 'Random string 1 2 3 45 6789 999999 22222', 'Example tech report 444444' ]

for n in range(len(list_o_text)):
find_all = re.findall('\d{5}+',list_o_text[n])
#1st loop result is ['99999','22222']

for five_d_num in find_all:

find_start = re.search(five_d_num,list_o_text[n]).start()

find = re.search('\d+',list_o_text[n][find_start: ]).group()

print(find)

ВЫВОД:
999999
22222
444444


Подробнее здесь: https://stackoverflow.com/questions/784 ... -numbers-i
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»