Expresiones regulares

www.altova.com Imprimir este apartado Página anterior Subir un nivel Página siguiente

Inicio >  Funciones >

Expresiones regulares

MapForce admite el uso de expresiones regulares en el parámetro pattern de la función tokenize-regexp para buscar cadenas concretas.

 

La sintaxis y la semántica de las expresiones regulares para XLST y XQuery es la definida en https://www.w3.org/TR/xmlschema-2/. Tenga en cuenta que la sintaxis de las expresiones regulares varía de un lenguaje de programación a otro.

 

Terminología


input

la cadena en la que trabaja la expresión regular


pattern

la expresión regular


flags

parámetro opcional para definir cómo se debe interpretar la expresión regular


result

el resultado de la función

 

regex6

 

La función tokenize-regexp devuelve una secuencia de cadenas. La conexión con elemento Filas crea una fila por cada elemento de la secuencia.

 

Sintaxis de las expresiones regulares

Literales (un solo carácter):

por ejemplo, la letra "a" es la expresión regular más básica. Busca la primera aparición del carácter "a" de la cadena.

 

Clases de caracteres []

Conjunto de caracteres entre corchetes.

 

Solamente se busca uno de los caracteres que aparecen entre corchetes.

 

pattern

[aeiou]

Busca una vocal en minúsculas.

 

pattern

[mj]ust

Busca must o just.

 

No olvide que el parámetro pattern distingue entre mayúsculas y minúsculas. Por ejemplo, a no encontrará A.

 

 

Intervalos de caracteres [a-z]

Crea el intervalo comprendido entre dos caracteres. Solamente se encontrará uno de los caracteres en cada búsqueda.

 

pattern

[a-z]

Busca cualquier carácter de la a a la z que esté en minúsculas.

 

 

Clases negadas [^]

Si usa el acento circunflejo como primer carácter tras el corchete de apertura, se niega la clase de caracteres.

 

pattern

[^a-z]

Busca caracteres que no estén en la clase de caracteres, incluidas las líneas nuevas.

 

Metacaracteres "."

Este metacarácter busca un solo carácter, sea cual sea (excepto líneas nuevas)

 

pattern

.

Busca un solo carácter, sea cual sea.

 

Cuantificadores ? + * {}

Los cuantificadores definen cuántas veces debe aparecer un componente de la expresión regular dentro de la cadena input para que la búsqueda obtenga resultados.

 


?



cero o una

busca cero o una coincidencia de la cadena precedente (la cadena es opcional)





+



una o más

busca una o más coincidencias de la cadena precedente





*



cero o más

busca cero o más coincidencias de la cadena precendente





{}



mínimo/máximo de repeticiones

número de repeticiones de la cadena o trozo



p. ej. mo{1,3} encuentra mo, moo, mooo.

 

 

()        

subpatrones

los paréntesis se usan para agrupar partes de la expresión regular.

 

|        

Alternancia/OR

permite probar de izquierda a derecha las subexpresiones

(horse|make) sense encuentra horse sense o make sense

 

 

Parámetro flags

Estos parámetros opcionales definen cómo se debe interpretar la expresión regular. Para establecer las opciones se usan letras, que pueden estar en cualquier orden y se pueden repetir.

 

s

Si está presente, el proceso de búsqueda opera en el modo dot-all.

 

El metacarácter "." encuentra un carácter, sea el que sea. Si la cadena de entrada input contiene hello y world en dos líneas diferentes, la expresión hello*world solamente encontrará resultados si se establece la marca flag s.

 

m

Si está presente, el proceso de búsqueda opera en el modo multilínea.

 

En el modo multilínea el acento circunflejo ^ busca el principio de una línea, sea cual sea. Es decir, el inicio de una cadena entera y el primer carácter que aparece después del carácter de línea nueva.

 

El carácter de dólar $ busca el fin de una línea, sea cual sea. Es decir, el final de una cadena entera y el primer carácter que aparece antes del carácter de línea nueva.

 

El carácter de línea nueva es #x0A.

 

i

Si está presente, el proceso de búsqueda no distingue entre mayúsculas y minúsculas.

La expresión regular [a-z] más la marca i encontrará todas las letras de la a-z (en minúsculas) y entre A-Z (en mayúsculas).

 

 

regex7

 

x

Si está presente, los caracteres de espacio en blanco se quitan de la expresión regular antes de iniciar el proceso de búsqueda. Los caracteres de espacio en blanco son #x09, #x0A, #x0D y #x20.

 

Excepción:

Los caracteres de espacio en blanco sin expresiones de clases de caracteres no se eliminan (por ejemplo, [#x20]).

 

Nota: cuando se genera código, las características avanzadas de la sintaxis regex pueden variar de unos lenguajes a otros. Para más información consulte la documentación de su lenguaje.

 


© 2019 Altova GmbH