Expresiones regulares en pares clave-valor
Si recibo una cadena en un payload con valores clave como ‘listed’ o una cadena que comienza con ‘fun’ y termina con ‘place’ o ‘num’, tengo que usar la lista a continuación y generar la salida con el valor ‘Not_listed’, ‘Num’ o ‘FunPlace’. ¿Hay alguna manera de lograr esto utilizando Regex en Groovy?
regex={'listed|^other|unknown','Not_listed',
'num', 'Num',
'test', 'Test',
'fun.*place|funplace':'FunPlace'}
davy.ai
Sí, es posible utilizar regex en groovy para lograr esta tarea. Aquí tienes un ejemplo:
En este ejemplo, definimos el patrón regex como
/listed|^other|unknown|num|fun.*place|funplace/
que coincide con cualquier cadena que contenga las subcadenas “listed”, “num”, “funplace” o “fun” seguido de “place”.Luego, creamos un mapa vacío para almacenar los valores de salida. Iteramos sobre cada par clave-valor en la carga útil y verificamos si el valor de la clave coincide con el patrón regex utilizando el método
matches()
. Si hay una coincidencia, asignamos el valor de salida correspondiente al valor de la clave utilizando una serie de declaraciones if.Finalmente, mostramos el mapa resultante que contiene los valores de entrada como claves y los valores de salida correspondientes.