Match regex
Match regex ( patron ; laCadena ; inicio {; pos_encont. ; long_encont.}{; *} ) -> Resultado
Match regex ( patron ; laCadena ) -> Resultado
Parámetro | Tipo | Descripción | |
---|---|---|---|
patron | Text | → | Expresión regular |
laCadena | Text | → | Cadena en la cual se efectúa la búsqueda |
inicio | Integer | → | Posición de laCadena donde comenzar la búsqueda |
pos_encont. | Array entero largo, Variable entero largo | ← | Posición de la ocurrencia |
long_encont. | Array entero largo, Variable entero largo | ← | Longitud de la ocurrencia |
* | Operador | → | Si se pasa: buscar únicamente en la posición indicada |
Resultado | Boolean | ← | True = la búsqueda ha encontrado una ocurrencia; De lo contrario, False. |
Match regex ( patron ; laCadena ) -> Resultado | |||
Parámetro | Tipo | Descripción | |
patron | Text | → | Expresión regular (igualdad completa) |
laCadena | Text | → | Cadena en la cual se efectúa la búsqueda |
Resultado | Boolean | ← | True= la cadena encuentra una ocurrencia, de lo contrario False |
Descripción
El comando Match regex permite probar la conformidad de una cadena de caracteres con respecto a un conjunto de reglas sintetizadas por medio de un metalenguaje llamado “expresión regular” o “expresión racional.” La abreviación regex es comúnmente empleada para indicar esto tipos de notaciones.
Pase en patrón la expresión regular a buscar. Consiste de un conjunto de caracteres utilizado para describir una cadena de caracteres, utilizando caracteres especiales.
Pase en laCadena la cadena en la cual buscar la expresión regular.
Pase en inicio, la posición en laCadena donde debe comenzar la búsqueda.
Si *pos_encont.*y long_encont son variables, el comando devuelve la posición y la longitud de la ocurrencia en estas variables. Si pasa arrays, el comando devuelve la posición y la longitud de la ocurrencia en el elemento cero de los arrays y las posiciones y longitudes de los grupos capturadas por la expresión regular en los elementos siguientes.
El parámetro opcional * indica, cuando se pasa, que la búsqueda debe llevarse a cabo en la posición especificada por inicio sin buscar más allá en caso de falla.
El comando devuelve True si la búsqueda encuentra una ocurrencia.
Para mayor información sobre regex, consulte la siguiente dirección:
http://en.wikipedia.org/wiki/Regular\_expression
Para mayor información sobre la sintaxis de las expresiones regulares pasadas en el parámetro patrón, consulte la siguiente dirección:
https://unicode-org.github.io/icu/userguide/strings/regexp.html#regular-expressions
Ejemplo 1
Búsqueda de igualdad completa (sintaxis simple):
vencontrado:=Match regex(plantilla;mitexto)
QUERY BY FORMULA([Empleados];Match regex(".*smith.*";[Empleados]nombre))
Ejemplo 2
Búsqueda en el texto por posición:
vencont:=Match regex(motivo;mitexto;inicio;pos_encont;long_encont)
Ejemplo para mostrar todas las etiquetas de $1:
inicio:=1
Repeat
vencont:=Match regex("<.*>";$1;inicio;pos_encont;long_encont)
If(vencont)
ALERT(Substring($1;pos_encont;long_encont))
inicio:=pos_encont+long_encont
End if
Until(Not(vencont))
Ejemplo 3
Búsqueda con soporte de “grupos capturados” vía paréntesis. ( ) se utilizan para especificar grupos en los regex:
vencont:=Match regex(motivo;mitexto; inicio; pos_encont; long_encont_array)
ARRAY LONGINT(pos_encont_array;0)
ARRAY LONGINT(long_encont_array;0)
vencont:=Match regex("(.*)stuff(.*)";$1;1;pos_encont_array;long_encont_array)
If(vencont)
$grupo1:=Substring($1;pos_encont_array{1};long_encont_array{1})
$grupo2:=Substring($1;pos_encont_array{2};long_encont_array{2})
End if
Ejemplo 4
Búsqueda limitando la comparación del motivo a la posición indicada:
Añadir una estrella al final de una de las dos sintaxis anteriores.
vencont:=Match regex("a.b";"---a-b---";1;$pos_encont;$long_encont )
//devuelve True
vencont:=Match regex("a.b";"---a-b---";1;$pos_encont;$long_encont ;*)
//devuelve False
vencont:=Match regex("a.b";"---a-b---";4;$pos_encont;$long_encont ;*)
//devuelve True
Nota: las posiciones y largos devueltos son significativosn sólo en modo Unicode o si el texto manipulado es de tipo ASCII 7-bits.
Gestión de errores
En caso de error, el comando genera un error que puede interceptar vía un método instalado por el comando ON ERR CALL.