Горячий вырезать текст в строке, которая меняется? - PullRequest
1 голос
/ 06 марта 2019

Мне было просто любопытно, был ли способ удалить текст из строки или захватить определенный текст, только если строка отличается в информации.

Примеры строк, над которыми я работаю:

3/5/2019 12:38 PM
10/30/2019 6:32 AM
9/12/2019 9:53 AM

Я хочу иметь возможность отдельно извлекать дату и час дня и добавлять их в список. Однако, очевидно, что они различаются, и даже индекс часа может измениться, так как день, месяц или час могут стать> 10, что может отодвинуть его назад до трех пробелов.

Ответы [ 2 ]

2 голосов
/ 06 марта 2019
import re

s = "3/5/2019 12:38 PM"
result = re.compile(r"[\s\/:]").split(s)

result:

['3', '5', '2019', '12', '38', 'PM']

Это должно решить вашу проблему, предполагая, что разделитель при вводе строки одинаков.

0 голосов
/ 06 марта 2019

вы можете использовать регулярные выражения что-то нравится это:

import re
m = re.match("(\d+/\d+/\d+) (\d+:\d+) (\wM)", "3/5/2019 12:38 PM")
print(m.groups())

при этом будет напечатан кортеж с первым элементом, являющимся датой, а вторым элементом - временем, а третьим элементом - PM или AM: ('3/5/2019', '12:38', 'PM'), который вы можете легко проанализировать самостоятельно

Редактировать

Вы также можете использовать модуль datetime для анализа строки даты:

import datetime
dt = datetime.datetime.strptime("3/5/2019 12:38 PM","%d/%m/%Y %I:%M %p")
print(dt.date(), dt.hour)

, который даст вам объект datetime, который вы можете получить всю информацию из

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...