dima_ikar
Май 3, 2019 22:11:18
есть определенная строка формат строки везде одинаковый но длина разная - пример
'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
Май 3, 2019 22:38:30
Если я правильно понял, то можно так:
#!/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
Май 3, 2019 22:40:49
Если именно через регулярки, вроде примерно такое получается:
pattern = re.compile(r"'([0-9\.]+)',\s*'[0-9\.]*'$")
dima_ikar
Май 3, 2019 22:55:46
Egorro13
Если именно через регулярки, вроде примерно такое получается:
если я правильно понял то pattern = re.compile(r"'(+)',\s*'*'$", типа строка)
нее не работает TypeError: unhashable type: ‘list’
Egorro13
Май 3, 2019 22:59:33
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
Май 3, 2019 23:15:15
Yuri197
Если я правильно понял, то можно так:
мил человек Ты спас меня - спасибо
dima_ikar
Май 3, 2019 23:24:16
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
Май 3, 2019 23:31:34
dima_ikar
прекрасно тоже верно только у меня строка заключена в квадратные скобки - буду их удалять щас
Не проще в конец регулярки квадратную скобку добавить? ))
pattern = re.compile(r"'([0-9\.]+)',\s*'[0-9\.]*'\]$")
doza_and
Май 3, 2019 23:39:18
Egorro13
Не проще в конец регулярки
Егор и компактная регулярка и отцепление хвоста уже описаны в
http://python.su/forum/topic/37170/?page=2Это одна тема. ТС умудрился запутаться и наплодить тем..
Egorro13
Май 3, 2019 23:45:08
doza_and
Егор и компактная регулярка и отцепление хвоста уже описаны в http://python.su/forum/topic/37170/?page=2
Ту тему я читал, связь уловил, но именно тут был задан конкретный вопрос, на который я мог попытаться ответить с пользой и для спрашивающего, и для себя))