tengo cadenas que parecen siguientes:Python expresiones regulares para extraer la fecha
{server}_{date:YYYYMMDD}{int:######}
{server}_{date:MON DAY YYYY}{int:######}
... y 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 "{date: YYYYMMDD}" y para la segunda cadena solo quiero "{date: MON DAY YYYY}". Los únicos caracteres que quiero dentro del bloque "fecha" son alfa y espacio en blanco.
Mi patrón de expresión es:
\{date:(\w|\s)*\}
He probado esto en this Regex builder, pero no se emparejan como se esperaba. Este es mi resultado 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']
¿Puede alguien indicar qué problema hay en mi patrón?
¡Gracias por todas las respuestas! Al ver las respuestas de todos ahora, es obvio que omití detalles importantes en mi pregunta. Edité mi publicación y agregué algunos más detalles. – tgxiii