Función REGEXFIND( )
Devuelve un valor lógico que indica si el patrón que se especificó con una expresión regular aparece en una cadena.
Sintaxis
REGEXFIND(cadena; patrón)
Parámetros
Nombre | Tipo | Descripción |
---|---|---|
cadena |
carácter |
El campo, la expresión o el valor literal que se debe probar en busca de un patrón de coincidencias. |
patrón |
carácter |
La cadena de patrón (expresión regular) que se debe buscar. El patrón puede contener caracteres literales, metacaracteres o una combinación de ambos. Los caracteres literales incluyen todos los caracteres alfanuméricos, algunos caracteres de puntuación y los espacios en blanco. La búsqueda distingue entre mayúsculas y minúsculas; esto significa que se deben especificar explícitamente caracteres alfabéticos en mayúscula y minúscula. |
Salida
Lógico. Devuelve T (verdadero) si se encuentra el valor de patrón especificado y F (falso) en caso contrario.
Ejemplos
Ejemplos básicos
Patrones de caracteres alfabéticos
Devuelve T para todos los registros que contienen “Phoenix”, “Austin” o “Los Angeles” en el campo Ciudad_proveedor. De lo contrario, devuelve F:
REGEXFIND(Ciudad_proveedor; "Phoenix|Austin|Los Angeles")
Regresa T para todos los apellidos que comienzan con "John" o "Jon". Por ejemplo: John, Jon, Johnson, Johnston, Jonson, Jonston, Jones, etc. De lo contrario, devuelve F:
REGEXFIND(Apellido;"^Joh?n")
Regresa T únicamente para los apellidos que son "John" o "Jon". De lo contrario, devuelve F:
REGEXFIND(Apellido;"^Joh?n\b")
Patrones de carácter numérico
Regresa T para todos los registros con números de factura que contienen "98". De lo contrario, devuelve F:
REGEXFIND(Número_factura; "98")
Regresa T para todos los registros con números de factura que comienzan con "98". De lo contrario, devuelve F:
REGEXFIND(Número_factura; "\b98")
Regresa T para todos los registros con números de factura que finalizan con "98". De lo contrario, devuelve F:
REGEXFIND(Número_factura; "98\b")
Regresa T para todos los registros con números de factura que contienen “98” en la 5° y 6° posición. De lo contrario, devuelve F:
REGEXFIND(Número_factura; "\b\d\d\d\d98")
REGEXFIND(Número_factura; "\b\d{4}98")
Patrones de caracteres combinados
Regresa T para todos los registros con códigos de producto que comienzan con 3 números, seguidos de un guion y 6 letras. De lo contrario, devuelve F:
REGEXFIND(Código_producto; "\b\d{3}-[a-zA-Z]{6}\b")
Regresa T para todos los registros con códigos de producto que comienzan con 3 o más números, seguidos de un guion y 6 o más letras. De lo contrario, devuelve F:
REGEXFIND(Código_producto; "\b\d{3,}-[a-zA-Z]{6}")
Regresa T para todos los registros con identificadores de factura alfanuméricos que contienen “98” en la 5° y 6° posición. De lo contrario, devuelve F:
REGEXFIND(Número_factura; "\b\w{4}98")
Regresa T para todos los registros con identificadores de factura que contienen las siguientes condiciones; de lo contrario, devuelve F:
- cualquier carácter en las primeras cuatro posiciones
- "98" en la 5° y 6° posición
REGEXFIND(Número_factura; "\b.{4}98")
Regresa T para todos los registros con identificadores de factura que contienen “98” después de 1 a 4 caracteres iniciales. De lo contrario, devuelve F:
REGEXFIND(Número_factura; "\b.{1,4}98")
Regresa 'T' para todos los registros con identificadores de factura que contienen la totalidad de las siguientes condiciones; de lo contrario, devuelve F:
- cualquier carácter en las tres primeras posiciones
- "5" o "6" en la cuarta posición
- "98" en la 5° y 6° posición
REGEXFIND(Número_factura; "\b.{3}[56]98")
Regresa T para todos los registros con identificadores de factura que contienen la totalidad de las siguientes condiciones; de lo contrario, devuelve F:
- cualquier carácter en las dos primeras posiciones
- "55" o "56" en la tercera y cuarta posición
- "98" en la 5° y 6° posición
REGEXFIND(Número_factura; "\b.{2}(55|56)98")
Observaciones
Cómo funciona
La función REGEXFIND( ) utiliza una expresión regular para buscar datos en Analytics.
Las expresiones regulares son cadenas de búsqueda potentes y flexibles que combinan caracteres literales y metacaracteres, que son caracteres especiales que realizan una variedad de operaciones de búsqueda.
Por ejemplo:
REGEXFIND(Apellido;"Sm(i|y)the{0,1}")
utiliza los metacaracteres de grupo ( ), alternancia | y cuantificador { } para crear una expresión regular que encuentra “Smith”, “Smyth”, “Smithe” o “Smythe” en el campo Apellido.
La coincidencia se realiza de manera secuencial
La coincidencia entre valores cadena y patrón se realiza de manera secuencial. En el ejemplo anterior:
- "S" se compara con la primera posición del campo Apellido
- "m" se compara con la segunda posición
- "i" e "y" se comparan con la tercera posición
- "t" se compara con la cuarta posición
- "h" se compara con la quinta posición
- "e" se compara contra la sexta posición, si hay una sexta posición en el valor de origen
Cuándo utilizar REGEXFIND( )
Utilice REGEXFIND( ) para buscar datos utilizando una coincidencia de patrón simple o compleja.
La construcción de expresiones regulares puede ser complicada, en especial si recién se familiariza con la sintaxis. Tal vez pueda lograr sus objetivos de búsqueda con funciones de búsqueda más sencillas de Analytics, como FIND( ), MATCH( ) o MAP( ).
Si sus necesidades de búsqueda superan las capacidades de estas funciones más sencillas, las expresiones regulares le ofrecen una flexibilidad prácticamente ilimitada para construir cadenas de búsqueda.
Cómo maneja los espacios REGEXFIND( )
Los espacios (en blanco) se consideran caracteres tanto en la cadena como en el patrón; por lo tanto, debe tener cuidado al trabajar con espacios.
En el patrón, puede indicar un espacio literalmente (escribiendo un espacio) o utilizando el metacarácter \s. El uso del metacarácter facilita la lectura de los espacios en el patrón y, por lo tanto, hace que resulte menos probable pasarlos por alto, en especial al construir patrones más complejos.
Concatenar campos
Puede concatenar dos o más campos en la cadena si desea buscar en varios campos de manera simultánea.
Por ejemplo:
REGEXFIND(Nombre_proveedor+Calle_proveedor;"Hardware.*Main")
busca las palabras "Hardware" y "Main" tanto en el campo Nombre_proveedor como en el campo Calle_proveedor, ya sea juntas o separadas por caracteres.
Un negocio que incluya la palabra "Hardware" en el nombre, ubicado en la calle "Main" coincidiría con esta expresión regular. Y lo mismo ocurre con un negocio denominado “Hardware on Main”.
Los campos concatenados se tratan como un único campo que incluye los espacios al principio y al final de los campos individuales, a menos que utilice la función ALLTRIM( ) para quitar los espacios.
El orden de los campos concatenados es importante
Como REGEXFIND( ) busca los caracteres en el patrón en el orden en el que usted los especifica, el orden en el que concatena los campos tiene un efecto. Si invierte Nombre_proveedor y Calle_proveedor en la expresión anterior, tendrá menos probabilidades de obtener resultados.
Metacaracteres de las expresiones regulares
La siguiente tabla incluye los metacaracteres que se pueden usar con REGEXFIND( ) y describe la operación que realiza cada uno de ellos.
Hay más sintaxis de expresiones regulares y Analytics trabaja con ella, pero esta sintaxis es más compleja. Sería imposible incluir una explicación completa de la sintaxis en esta guía. Puede encontrar varios recursos en los que se explican las expresiones regulares en Internet.
Analytics utiliza la implementación ECMAScript de expresiones regulares. La mayoría de las implementaciones de las expresiones regulares utilizan una sintaxis común.
Nota
La implementación actual de las expresiones regulares en Analytics no admite completamente la búsqueda en otros idiomas que no sean el inglés.
Metacarácter |
Descripción |
---|---|
. |
Coincide con cualquier carácter (excepto un carácter de línea nueva) |
? |
Busca una coincidencia de 0 o 1 aparición del elemento, metacarácter o literal inmediatamente anterior |
* |
Busca una coincidencia de 0 o más apariciones del elemento, metacarácter o literal inmediatamente anterior |
+ |
Busca una coincidencia de 1 o más apariciones del elemento, metacarácter o literal inmediatamente anterior |
{} |
Busca una coincidencia de la cantidad especificada de apariciones del elemento, metacarácter o literal inmediatamente anterior Puede especificar un número exacto, un rango o un rango abierto. Por ejemplo:
|
[] |
Coincide con cualquier carácter único que se encuentre dentro de los corchetes Por ejemplo:
|
() |
Crea un grupo que define una secuencia o un bloque de caracteres, que pueden ser tratados como una misma unidad. Por ejemplo:
|
\ |
Un carácter de escape que especifica que el carácter siguiente es un literal. Utilice el carácter de escape si desea hacer coincidir literalmente cualquiera de los metacaracteres. Por ejemplo, \( encuentra un paréntesis de apertura y \\ encuentra una barra invertida. Utilice el carácter de escape si desea hacer coincidir literalmente cualquiera de los siguientes caracteres: ^ $ . * + ? = ! : | \ ( ) [ ] { } Otros caracteres de puntuación, como & o @, no requieren el carácter de escape. |
\int |
Especifica que un grupo, anteriormente definido como paréntesis ( ), se repite. int es un número entero que identifica la posición secuencial del grupo previamente definido en relación con cualquier otro grupo. Este metacarácter se puede utilizar en el parámetro patrón tanto en REGEXFIND( ) como en REGEXREPLACE( ). Por ejemplo:
|
$int |
Especifica que un grupo que se encuentra en una cadena de destino se utiliza en una cadena de reemplazo. int es un número entero que identifica la posición secuencial del grupo en la cadena de destino respecto de otros grupos. Este metacarácter se puede utilizar únicamente en el parámetro cadena_nueva en REGEXREPLACE( ). Por ejemplo:
|
| |
Coincide con el carácter, el bloque de caracteres o la expresión que se encuentra antes o después del separador (|) Por ejemplo:
|
\w |
Coincide con cualquier carácter (a a la z, A a la Z, 0 a 9 y el carácter de guion bajo _ ) |
\W |
Coincide con cualquier carácter que no sea de palabra (que no sea a a la z, A a la Z, 0 a 9 o el carácter de guion bajo _ ) |
\d |
Coincide con cualquier número (cualquier dígito decimal) |
\D |
Coincide con cualquier carácter no numérico (cualquier carácter que no sea un dígito decimal) |
\s |
Coincide con un espacio (un espacio en blanco) |
\S |
Coincide con cualquier carácter que no esté en blanco |
\b |
Coincide con el límite de una palabra (entre caracteres \w y \W) Los límites de las palabras no ocupan un espacio. Por ejemplo:
Consejo Además de los espacios, los límites entre las palabras pueden derivar de comas, puntos u otros caracteres que no sean palabras. Por ejemplo, la siguiente expresión se evalúa como Verdadera: REGEXFIND("jsmith@example.net"; "\bexample\b") |
^ |
Coincide con el inicio de una cadena Dentro de los corchetes [ ], ^ niega el contenido |
$ |
Coincide con el final de una cadena |
Funciones relacionadas
Si desea buscar y reemplazar patrones coincidente utilice Función REGEXREPLACE( ).