Expressões regulares Python para extrair data
Tenho strings parecidas com estas:
{server}_{date:YYYYMMDD}{int:######}
{server}_{date:MON DAY YYYY}{int:######}
... além de mais, em diferentes formatos de data. Além disso, pode haver qualquer número de {} blocos e eles podem aparecer em qualquer ordem.
Estou tentando obter apenas a parte "date" entre os chavetas no Python 3.2. Portanto, para a primeira string, quero apenas "{date: AAAAMMDD}" e para a segunda string, quero apenas "{date: MON DAY AAAA}". Os únicos caracteres que eu quero dentro do bloco "date" são alfa e espaço em branco.
Meu padrão de regex é:
\{date:(\w|\s)*\}
Eu testei isso emeste construtor Regex, mas não corresponde ao esperado. Esta é a minha saída no Python:
>>> import re
>>> re.findall('\{date:(\w|\s)*\}', '{server}_{date:YYYYMMDD}{date:MONDAYYYYY}{int:######}')
['D', 'Y']
>>> re.findall('\{date:(\w|\s)*\}', '{server}_{date:MON DAY YYYY}{int:######}')
['Y']
lguém pode apontar o que há de errado com meu padrã