Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 26, 2021 20:44:24

Kiprida
Зарегистрирован: 2021-12-26
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

findall подскажите не поняла(

простите возможно вопрос глупый но ломаю голову уже сутки

есть строка с данными - convert_datetime(“21.01.2022”, “%Y-%m-%d”, “%d.%m.%Y”)

как из нее с помощью функции findall вытянуть дату ? 21.01.2022 (и дата может быть любой, но в виде даты
понимаю что вопрос с масивом но никак не могу врубится как вытащить

Офлайн

#2 Дек. 27, 2021 07:48:29

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9874
Репутация: +  854  -
Профиль   Отправить e-mail  

findall подскажите не поняла(

Kiprida
есть строка с данными
Непонятно, какая у тебя строка.

Допустим, у тебя прямо такая строка
convert_datetime("21.01.2022", "%Y-%m-%d", "%d.%m.%Y")

Тогда извлечём из неё дату, если дата любая
  
>>> import re
>>> 
>>> text = """convert_datetime("21.01.2022", "%Y-%m-%d", "%d.%m.%Y")"""
>>> 
>>> pat = r'\("(\d{2}\.\d{2}\.\d{4})"'
>>> match = re.search(pat, text)
>>> if match is not None:
...     out = match.group(1)
... 
>>> print(out)
21.01.2022
>>> 
>>> out = re.findall(pat, text)[0]
>>> print(out)
21.01.2022
>>>



Офлайн

#3 Дек. 27, 2021 09:50:29

Kiprida
Зарегистрирован: 2021-12-26
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

findall подскажите не поняла(

Спасибо огромное, путалась именно с этим

py.user.next
(\d{2}\.\d{2}\.\d{4})

Офлайн

#4 Дек. 27, 2021 17:08:25

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9874
Репутация: +  854  -
Профиль   Отправить e-mail  

findall подскажите не поняла(

Точки обязательно экранируй, иначе датой будет считаться и вот такое “21.01.2022”, и вот такое “21x01x2022”, и вот такое “2130152022”. Точка совпадает с любым символом, а экранированная точка совпадает только с точкой.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version