Para el tercer reto, examinemos como analizar fechas en cadenas de texto.
Un conjunto de datos contiene un campo de texto que tiene una fecha incrustada en el texto. El problema es que la fecha se representa de diferentes maneras. Por ejemplo:
• 16-APR-2005
• Nov•16,•1900
• 4-SEP-00
• Jan•5•2000
El objetivo es crear un nuevo campo Fecha / Hora relleno con las fechas contenidas en el campo de texto. También deberás estandarizar las fechas para que todas tengan el mismo formato.
Hemos etiquetado esto como un ejercicio avanzado, ya que analizar las fechas puede ser un desafío dependiendo de la técnica que se emplee para hacerlo. Como siempre, nos encantaría escuchar tus comentarios. ¡Que te diviertas!
Buen día, adjunto mi solución.
Aún no me quedan claras algunas combinaciones en RegEx, espero que puedan comentarme un poco acerca de esto:
Cual es la diferencia entre escribir \d\d+ y solo \d+ , tambien en mi solución al escribir ,\s\d+ no me funcionó pero cuando le agregue * si ,*\s\d+
Saludos.
!Hola y feliz comienzo de semana!
Dejame revisar el reto y te de doy una respuesta tan pronto pueda.
Gracias por participar.
Hola @RVOrchessi ,
Si usas \d es para que te traiga cualquier digito
El \d+ te trae cualquier número de digitos tantas veces como sea posible.
Si usas \d\d+ no hace gran diferencia y podría generar confusión en el resultado de la expresión.
\s es cualquier espacio en blanco.
\s\d+ es cualquier número que tenga antes un espacio en blanco.
El * te devuelve cero o más repeticiones.
El + te da una o más repeticiones.
El * y + son más flexibles, son codiciosos porque te devuelven todo lo que encuentran.
Para saber más de regex te recomiendo:
Este sitio interactivo y con ejercicios sencillos:
O este otro que tiene una pantalla interactiva para que pruebes tus expresiones en tiempo.
Espero haber aclarado tu duda.
Gabriel
Tambien puedes revisar este artículo de Dominio de Herramientas en la Base de Conocimientos:
Trabajar con regex siempre es gratificante, es tan poderoso, que hace que valga la pena comenzar a aprenderlo.