У меня есть следующий файл, который я пытаюсь извлечь дату из 20131013.csv
Python регулярное выражение найти не соответствует
Использование регулярных выражений (?P<yyyy>\\d{4})(?P<mm>\\d{2})(?P<dd>\\d{2})
def getEffectiveDate(regex, fileName) :
parts = 'yyyy-mm-dd'
formatString = '%s-%s-%s 00:00:00'
regexGroups = parts.split("-")
m = re.search(regex, fileName)
if m :
vals = []
for regexGroup in regexGroups :
vals.append(m.group(regexGroup))
value = formatString%tuple(vals)
return value
, когда я прохожу в getEffectiveDate('(?P<yyyy>\\d{4})(?P<mm>\\d{2})(?P<dd>\\d{2})', '20131013.csv')
я не нахожу никаких совпадений ,
Однако регулярное выражение (?P<yyyy>\\d{4})-(?P<mm>\\d{2})-(?P<dd>\\d{2})
найти матч на 2013-10-13.csv
Я интересно, если это было вызвано там быть ничем Inbetween регулярных выражения групп, и если есть все, что я могу сделать, чтобы исправить это?
EDIT:
Я нашел решение, делая regex.replace('\\\\', '\\')
Двойной обратный слеш вызывали проблемы с согласования. Я только пробовал регулярное выражение (?P<yyyy>\\d{4})-(?P<mm>\\d{2})-(?P<dd>\\d{2})
как необработанную строку, поэтому он работал в этом случае.
Ваш код работает для меня .. –