Я пытаюсь найти регулярное выражение для извлечения месяца, дня и года из метки даты и времени в этом формате:
01/20/2019 12:34:54
Должен вернуть список:
['01', '20', '2019']
Я знаю, что это можно решить с помощью:
dt.split(' ')[0].split('/')
Но я пытаюсь найти регулярное выражение для этого:
[^\/\s]+
Но мне нужно это исключить все после пробела.
3 ответа
Поскольку вы ожидаете, что дата, месяц и год будут возвращены в виде списка, вы можете использовать этот код Python,
import re
s = '01/20/2019 12:34:54'
print(re.findall(r'\d+(?=[ /])', s))
Отпечатки ,
['01', '20', '2019']
В противном случае, вы можете лучше написать свое регулярное выражение как,
(\d{2})/(\d{2})/(\d{4})
И получить дату, месяц и год от group1, group2 и group3
Код Python таким образом должен быть,
import re
s = '01/20/2019 12:34:54'
m = re.search(r'(\d{2})/(\d{2})/(\d{4})', s)
if m:
print([m.group(1), m.group(2), m.group(3)])
Отпечатки ,
['01', '20', '2019']
Этот RegEx может помочь вам в этом.
([0-9]+)\/([0-9]+)\/([0-9]+)\s[0-9]+:[0-9]+:[0-9]+
Код:
import re
string = '01/20/2019 12:34:54'
matches = re.search(r'([0-9]+)/([0-9]+)/([0-9]+)', string)
if matches:
print([matches.group(1), matches.group(2), matches.group(3)])
else:
print('Sorry! No matches! Something is not right! Call 911')
Выход
['01', '20', '2019']
Здесь вы обязательно должны использовать API даты / времени Python. Используйте strptime
для синтаксического анализа вашей входной строки даты и времени в истинной дате и времени Python. Затем просто создайте список, получая доступ к различным компонентам, которые вам нужны.
dt = "01/20/2019 12:34:54"
dto = datetime.strptime(dt, '%m/%d/%Y %H:%M:%S')
list = [dto.month, dto.day, dto.year]
print(list)
[1, 20, 2019]
Если вы действительно хотите / должны работать с исходной строкой даты и времени, тогда split
предоставляет опцию, даже без формального использования регулярного выражения:
dt = "01/20/2019 12:34:54"
dt = dt.split()[0].split('/')
print(dt)
['01', '20', '2019']
Похожие вопросы
Новые вопросы
regex
Регулярные выражения предоставляют декларативный язык для сопоставления шаблонов в строках. Они обычно используются для проверки, синтаксического анализа и преобразования строк. Поскольку регулярные выражения не полностью стандартизированы, все вопросы с этим тегом должны также включать тег, определяющий применимый язык программирования или инструмент.