Expresiones regulares.
Desde hace un tiempo usamos mucho expresiones regulares para buscar en archivos, fundamentalmente fuentes generados, para encontrar errores o patrones de sentencias que queremos detectar. Mi herramienta predilecta para esto es el Search&Replace de Funduc.
No había tenido necesidad de usar expresiones regulares en programas.
Para el desarrollo de KBDoctor (una extensión para GeneXus) hay un reporte que tiene que listar los objetos que tengan regla parm() sin especificar si los parámetros son de entrada y salida.
Para hacer mas o menos rápido dicho reporte, primero identificamos cuales son los objetos que tienen parámetros y al menos alguno de ellos es inout:, lo cual puede significar que no se especifico el uso del parámetro.
Luego recorremos las rules, usando expresiones regulares para extraer las lineas comentadas (con // y con /* */) y después sacamos la regla parm() y en ella nos fijamos si faltan IN:/OUT:/INOUT:.
Para el manejo de dichas expresiones regulares, busqué algunas herramientas.
Regulator.
Tiene una cantidad de opciones, pero no me resultó muy practico.
Expresso
Bien sencillo y práctico. Permite probar fácilmente la expresión regular y los resultados que devuelve el Match(). Muestra como queda el código C# de la expresión.
Genexus Rocha, tiene soporte para el manejo de expresiones regulares, lo cual va a posibilitar una cantidad de cosas nuevas que antes daba mucho trabajo de programar. Es bueno practicar con estas herramientas o algunas similares, porque el uso de expresiones regulares ahorra mucho tiempo de programación aburrida.
PD: Por si la quieren usar, una para validar direcciones de email. Les quedo un poco compleja
No había tenido necesidad de usar expresiones regulares en programas.
Para el desarrollo de KBDoctor (una extensión para GeneXus) hay un reporte que tiene que listar los objetos que tengan regla parm() sin especificar si los parámetros son de entrada y salida.
Para hacer mas o menos rápido dicho reporte, primero identificamos cuales son los objetos que tienen parámetros y al menos alguno de ellos es inout:, lo cual puede significar que no se especifico el uso del parámetro.
Luego recorremos las rules, usando expresiones regulares para extraer las lineas comentadas (con // y con /* */) y después sacamos la regla parm() y en ella nos fijamos si faltan IN:/OUT:/INOUT:.
Para el manejo de dichas expresiones regulares, busqué algunas herramientas.
Regulator.
Tiene una cantidad de opciones, pero no me resultó muy practico.
Expresso
Bien sencillo y práctico. Permite probar fácilmente la expresión regular y los resultados que devuelve el Match(). Muestra como queda el código C# de la expresión.
Genexus Rocha, tiene soporte para el manejo de expresiones regulares, lo cual va a posibilitar una cantidad de cosas nuevas que antes daba mucho trabajo de programar. Es bueno practicar con estas herramientas o algunas similares, porque el uso de expresiones regulares ahorra mucho tiempo de programación aburrida.
PD: Por si la quieren usar, una para validar direcciones de email. Les quedo un poco compleja
Hola, trabajo con genexus 8.0 y quería saber si es posible usar expresiones regulares para validar un mail por ejemplo.
ResponderBorrarGracias.
mi mail es :
tonino545@gmail.com
Creo que GeneXus 8.0, no tiene soporte nativo para expresiones regulares.
ResponderBorrarTendrias que hacer un programa externo (en VFP, Java, C#) que haga la validacion de la expresion regular y llamarlo para validar si el campo es un email valido o no.