Проверить формат строки python?
У меня есть куча строк, но я хочу сохранить только те, которые имеют этот формат:
x/x / xxxx xx:xx
каков самый простой способ проверить, соответствует ли строка этому формату? (Предполагая, что я хочу проверить, есть ли у него 2 / 's и a':')
3 ответов
попробуйте с регулярным выражением:
import re
r = re.compile('.*/.*/.*:.*')
if r.match('x/x/xxxx xx:xx') is not None:
print 'matches'
вы можете настроить выражение в соответствии с вашими потребностями
использовать времени.strptime для разбора из строки в структуру времени. Если строка не соответствует формату, он вызывает ValueError
.
Если вы используете регулярные выражения с match, вы также должны учитывать, что конец слишком длинный. Без тестирования длины в этом коде можно проскочить любой символ не новой строки в конце. Вот код, измененный из других ответов.
import re
r = re.compile('././.{4} .{2}:.{2}')
s = 'x/x/xxxx xx:xx'
if len(s) == 14:
if r.match(s):
print 'matches'