Найти - Пользователи
Полная версия: re.findall Извлечь определенный данные в тексте
Начало » Python для новичков » re.findall Извлечь определенный данные в тексте
1 2
dima_ikar
есть определенная строка формат строки везде одинаковый но длина разная - пример
'1.3', ‘1854’, ‘1.4.1.0’, ‘6.3.1.1’, ‘47480.3.2.2.4.0’, ‘1’
или
'1.3', ‘1854’, 1.3.1.1', ‘1.4.1.0’, ‘6.3.1.1’, ‘480.1.2.2.0.0’, ‘1’
итд
надо извлечь только предпоследние !! данные в строке без ковычек должно получится так
а = 47480.3.2.2.4.0 или а = 480.1.2.2.0.0
Yuri197
Если я правильно понял, то можно так:
 #!/usr/bin/env python3
# -*- coding: utf-8 -*-
if __name__ == "__main__":
    string = "'1.3', '1854', '1.3.1.1', '1.4.1.0', '6.3.1.1', '480.1.2.2.0.0', '1'"
    list_values = string.split(',')
    len_list_value = len(list_values)
    len_list_value -= 2
    print(list_values[len_list_value])
Egorro13
Если именно через регулярки, вроде примерно такое получается:
 pattern = re.compile(r"'([0-9\.]+)',\s*'[0-9\.]*'$")
dima_ikar
Egorro13
Если именно через регулярки, вроде примерно такое получается:
если я правильно понял то pattern = re.compile(r"'(+)',\s*'*'$", типа строка)
нее не работает TypeError: unhashable type: ‘list’
Egorro13
dima_ikar
если я правильно понял то pattern = re.compile(r“'(+)',\s*'*'$”, типа строка)
Это, грубо говоря, создание шаблона с нужным регулярным выражением для последующей работы. Использование может выглядеть примерно так (просто как пример, сам только недавно начал разбираться с этим):
 import re
pattern = re.compile(r"'([0-9\.]+)',\s*'[0-9\.]*'$")
found = pattern.search("'1.3', '1854', '1.4.1.0', '6.3.1.1', '47480.3.2.2.4.0', '1'")
print(found.group(1))
dima_ikar
Yuri197
Если я правильно понял, то можно так:
мил человек Ты спас меня - спасибо
dima_ikar
Egorro13
import re
pattern = re.compile(r"'(+)',\s*'*'$“)
found = pattern.search(”'1.3', ‘1854’, ‘1.4.1.0’, ‘6.3.1.1’, ‘47480.3.2.2.4.0’, ‘1’")
print(found.group(1))
прекрасно тоже верно только у меня строка заключена в квадратные скобки - буду их удалять щас
Egorro13
dima_ikar
прекрасно тоже верно только у меня строка заключена в квадратные скобки - буду их удалять щас
Не проще в конец регулярки квадратную скобку добавить? ))
 pattern = re.compile(r"'([0-9\.]+)',\s*'[0-9\.]*'\]$")
doza_and
Egorro13
Не проще в конец регулярки
Егор и компактная регулярка и отцепление хвоста уже описаны в http://python.su/forum/topic/37170/?page=2
Это одна тема. ТС умудрился запутаться и наплодить тем..
Egorro13
doza_and
Егор и компактная регулярка и отцепление хвоста уже описаны в http://python.su/forum/topic/37170/?page=2
Ту тему я читал, связь уловил, но именно тут был задан конкретный вопрос, на который я мог попытаться ответить с пользой и для спрашивающего, и для себя))
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB