Encontrar una expresión regular
La siguiente es una expresión regular que se puede utilizar para hacer coincidir cadenas que cumplan con los requisitos anteriores:
^(?: (?lt; key1gt; \w )\s*= \ s*'(?lt; value1gt; [^']*)'\s (?: (?: AND|O)\s (?lt; key2gt; \w )\s*=\s*'(? lt ;value2gt;[^']*)')*)?$
Esta expresión regular se divide en cuatro partes:
1. Comenzando con ^ y terminando con $, significa. La cadena coincidente debe ser una cadena completa y no puede contener otros caracteres.
2. La parte central es una agrupación opcional, que indica que la cadena vacía puede coincidir. Si desea hacer coincidir una cadena que no esté vacía, se deben cumplir las siguientes condiciones:
Debe comenzar con el formato clave1 = 'valor1', donde clave1 es el nombre del campo, valor1 es el valor del campo, hay espacios en ambos lados y el valor está entre comillas simples.
Puede contener múltiples condiciones, unidas con Y u O en mayúsculas, y debe haber espacios entre las condiciones. El formato de cada condición es clave2 = 'valor2', donde clave2 es el nombre del campo, valor2 es el valor del campo, hay espacios en ambos lados y el valor está entre comillas simples.
3. En la agrupación, se utilizan grupos con nombre, a saber, clave1, valor1, clave2 y valor2. Esto facilita la obtención de nombres de campos y valores de campos coincidentes.
4. Al hacer coincidir valores de campo, se utiliza una búsqueda anticipada negativa para evitar que coincidan las comillas simples en el valor. La afirmación de predicción negativa anticipada se escribe como (?!...), lo que significa que los patrones posteriores no pueden coincidir antes de que pueda continuar la coincidencia. Aquí usamos [^']* para hacer coincidir cualquier número de caracteres que no sean comillas simples, seguido de una aserción anticipada negativa (?!'), lo que indica que la cadena coincidente no puede ir seguida de una comilla simple. Esto evita la coincidencia de comillas simples en los valores.
Por ejemplo, usar esta expresión regular para hacer coincidir la cadena clave1 = 'valor1' Y clave2 = 'valor2' puede obtener los siguientes resultados:
la agrupación clave1 coincide con clave1
el grupo valor1 coincide con el valor1
el grupo clave2 coincide con la clave2
el grupo valor2 coincide con el valor2
Además, también puede utilizar esta expresión regular para hacer coincidir una cadena vacía , por ejemplo:
Coincide con la cadena '', todos los grupos nombrados no coinciden
Coincide con la cadena clave1 = 'valor1', el grupo clave1 coincide con la clave1 y el grupo valor1 coincide valor1, otros grupos con nombre no coinciden
Espero que esta expresión regular pueda ayudarte a resolver el problema.