En una expresión lógica puede comparar una expresión de serie con otra serie (llamada criterio match) por posiciones de caracteres de izquierda a derecha. La utilización de esta característica es parecida a la utilización de expresiones regulares en UNIX o Perl.
A continuación se ofrece un ejemplo:
// la variable myVar01 es la expresión de serie // cuyo contenido se comparará con un criterio match myVar01 = "abcdef"; // la expresión lógica siguiente evalúa a "true" if (myVar01 matches "a?c*") ; end
El criterio match puede ser un literal o un elemento de tipo CHAR o MBCHAR o un elemento de tipo UNICODE. Puede incluir cualquiera de estos caracteres en el criterio match:
[abc]
[a-c]
El guión (-) no tiene un significado especial fuera de los corchetes delimitadores.
[^abc]
El carácter de escape precede habitualmente a un carácter que de lo contrario sería relevante en el critrerio match; por ejemplo, un asterisco (*) o un signo de interrogación (?).
Cuando utilice la barra inclinada invertida como un carácter de escape (como en el comportamiento por omisión), surge un problema porque EGL utiliza el mismo carácter de escape para permitir la inclusión de unas comillas simples en cualquier expresión de texto. En el contexto de un criterio match debe especificar dos barras inclinadas invertidas porque el texto disponible en tiempo de ejecución es el texto al que le falta la barra inclinada invertida inicial.
Es aconsejable evitar este problema. Especifique otro carácter como el carácter de escape utilizando la cláusula de escape tal como se muestra en un ejemplo posterior. Sin embargo, no puede utilizar unas comillas (") como carácter de escape.
Cualquier otro carácter en matchCriterion es un literal comparado con un solo carácter de la expresión serie.
// la variable myVar01 es la expresión de serie // cuyo contenido se comparará con un criterio match myVar01 = "ab*def"; // la expresión lógica siguiente evalúa a "true" if (myVar01 matches "ab\\*[abcd][abcde][^a-e]") ; end // la expresión lógica siguiente evalúa a "true" if (myVar01 matches "ab+*def" escape "+") ; end
Consulta relacionada
Sentencias EGL
Expresiones lógicas
Expresiones de texto