Проверить формат строки 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'