Expresiones regulares de Python para extraer la fecha
Tengo cadenas que se parecen a estas:
{server}_{date:YYYYMMDD}{int:######}
{server}_{date:MON DAY YYYY}{int:######}
... más más, en diferentes formatos de fecha. Además, puede haber cualquier cantidad de {} bloques, y pueden aparecer en cualquier orden.
Estoy tratando de obtener solo la parte de "fecha" entre las llaves en Python 3.2. Entonces, para la primera cadena, quiero obtener solo "{fecha: AAAAMMDD}" y para la segunda cadena quiero solo "{fecha: LUN DÍA AAAA}". Los únicos caracteres que quiero dentro del bloque "fecha" son alfa y espacios en blanco.
Mi patrón regex es:
\{date:(\w|\s)*\}
He probado esto eneste generador Regex, pero no coincide como se esperaba. Esta es mi salida en 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']
¿Alguien puede señalar qué hay de malo en mi patrón?