Match regex

4D - Documentation   Français   English   German   Español   4D v11 SQL, Comandos por temas   4D v11 SQL, Lista alfabética de comandos   4D v11 SQL, Constantes por temas   Regresar   Anterior   Siguiente

versión 11


Match regex (motivo; laCadena{; inicio{; pos_encont.{; long_encont.{; *}}}}) Booleano

ParámetroTipoDescripción
motivoTextoExpresión regular
laCadenaTextoCadena en la cual se efectúa la búsqueda
inicioNuméricoPosición de laCadena donde comenzar la
búsqueda
pos_encont.Var | Array Ent. LargoPosición de la ocurrencia
long_encont.Var | Array Ent. LargoLongitud de la ocurrencia
**Si se pasa: buscar únicamente en la posición
indicada
ResultadoBooleanoTrue = la búsqueda ha encontrado 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 motiv 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 motivo, consulte la siguiente dirección:

http://www.icu-project.org/userguide/regexp.html

Ejemplos

Este comando puede utilizarse de varias maneras, como se ilustra en los siguientes ejemplos:

1. Búsqueda de igualdad completa:

   vencont:=Match regex(motivo;mitexto)
   QUERY BY FORMULA([Empleados];Match regex(".*vargas.*"; [Empleados]apellido))

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))

3. Búsqueda con soporte de "grupos capturados":

   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

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 sólo significativos 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.


4D - Documentation   Français   English   German   Español   4D v11 SQL, Comandos por temas   4D v11 SQL, Lista alfabética de comandos   4D v11 SQL, Constantes por temas   Regresar   Anterior   Siguiente