Una expresión regular (regexp) es una secuencia específica de caracteres que coincide de forma amplia o restringida con patrones de tus datos. Puedes usar expresiones regulares para crear filtros más flexibles en los gráficos y los controles. También puedes usar las siguientes funciones de expresiones regulares en las fórmulas de los campos calculados:
Función | Descripción |
---|---|
REGEXP_CONTAINS |
Devuelve verdadero si el valor de entrada contiene el patrón de expresión regular; de lo contrario, devuelve falso. Obtén más información sobre REGEXP_CONTAINS . |
REGEXP_EXTRACT |
Devuelve la primera subcadena coincidente en el valor de entrada que coincide con el patrón de expresión regular. Obtén más información sobre REGEXP_EXTRACT . |
REGEXP_MATCH |
Devuelve verdadero si el valor de entrada coincide con el patrón de expresión regular; de lo contrario, devuelve falso. Obtén más información sobre REGEXP_MATCH . |
REGEXP_REPLACE |
Reemplaza todas las ocurrencias de texto que coinciden con el patrón de expresión regular en el valor de entrada por la cadena de reemplazo. Obtén más información sobre REGEXP_REPLACE . |
Alternativas al uso de expresiones regulares
Construir expresiones regulares puede ser complejo. Antes de usar una función de expresión regular, considera si usar una función de texto más simple logrará tu objetivo. Las siguientes funciones proporcionan una funcionalidad similar a la de las expresiones regulares sin necesidad de que conozcas la sintaxis de regexp.
Función | Descripción |
---|---|
CONTAINS_TEXT |
Devuelve verdadero si el texto especificado se encuentra en el campo o la expresión; de lo contrario, devuelve falso. |
ENDS_WITH |
Devuelve verdadero si el campo o la expresión terminan con el texto especificado; de lo contrario, devuelve falso. |
LEFT_TEXT |
Devuelve una cantidad de caracteres desde el inicio de una cadena especificada. |
REPLACE |
Devuelve una copia del texto original con todas las ocurrencias del texto de búsqueda reemplazadas por el texto de reemplazo. |
RIGHT_TEXT |
Devuelve una cantidad de caracteres desde el final de una cadena especificada. |
STARTS_WITH |
Devuelve verdadero si el campo o la expresión comienzan con el texto especificado; de lo contrario, devuelve falso. |
TRIM |
Devuelve texto sin espacios iniciales ni finales. |
Ejemplos de expresiones regulares
Coincide si MyField contiene caracteres de espacio:
REGEXP_CONTAINS(MyField, "\\s+")
Extrae el directorio de nivel superior de una URL:
REGEXP_EXTRACT(URL,
^https://[^/]+/([^/]+)/
)
Por ejemplo, si el campo URL
contuviera la dirección de esta página, la función anterior devolvería looker-studio
.
Categoriza las campañas publicitarias por idioma:
CASE
WHEN REGEXP_MATCH(Campaign 2, R".*\|\s*en\s*\|.*") then "English"
WHEN REGEXP_MATCH(Campaign 2, R".*\|\s*es\s*\|.*") then "Spanish"
ELSE "Other language"
END
Por ejemplo, si aplicas esta expresión regular a la dimensión Campaña en la cuenta de demostración de Google Analytics, obtendrás los siguientes resultados:
Campaña | Idioma |
---|---|
Campaña 1 | Otro idioma |
1000549 | Google Analytics Demo | DR | apontes | NA | US | en | Hybrid | AW SEM | BKWS | ~ AW - Google Brand (US) | Inglés |
1000549 | Google Analytics Demo | DR | apontes | NA | CA | es | Hybrid | AW SEM | BKWS | ~ AW - YouTube (CA) | Español |
Cómo intercambiar el orden de las secciones en una cadena:
REGEXP_REPLACE(Campaign, R'(.*):(.*)', R'\2 \1')
En el ejemplo anterior, las secciones están separadas por dos puntos (:).
Metacaracteres
Los metacaracteres son caracteres que tienen un significado especial en una expresión regular. A continuación, se incluyen algunos de los metacaracteres más comunes que puedes usar. Ten en cuenta que estos ejemplos se abrirán en el Centro de ayuda de Google Analytics, pero la información que se presenta allí se aplica de igual manera a Looker Studio.
Comodines
“Basado | Descripción | Ejemplo |
---|---|---|
. | Coincide con cualquier carácter (letra, número o símbolo). | 1. coincide con 10, 1A 1.1 coincide con 111 y 1A1 Ejemplos |
? | Coincide con el carácter anterior 0 o 1 veces. | 10? coincide con 1 y 10 Ejemplos |
+ | Coincide con el carácter anterior 1 o más veces. | 10+ coincide con 10 y 100 Ejemplos |
* | Coincide con el carácter anterior 0 o más veces. | 1* coincide con 1 y 10 Ejemplos |
| | Crea una coincidencia OR. No se usa al final de una expresión. | 1|10 coincide con 1 y 10 Ejemplos |
Anclajes
“Basado | Descripción | Ejemplo |
---|---|---|
^ | Coincide con los caracteres adyacentes al principio de una cadena. | ^10 coincide con 10 , 10 0, 10 x ^10 no coincide con 110 ni con 110x. Ejemplos |
$ | Coincide con los caracteres adyacentes al final de una cadena. | 10$ coincide con 110 y 1010 10$ no coincide con 100 ni 10x Ejemplos |
Grupos
“Basado | Descripción | Ejemplo |
---|---|---|
( ) | Coincide con los caracteres encerrados en el orden exacto en cualquier parte de una cadena. También se usa para agrupar otras expresiones. | (10) coincide con 10 , 10 1, 10 11 ([0-9]|[a-z]) coincide con cualquier número o letra minúscula Ejemplos |
[ ] | Coincide con los caracteres encerrados en cualquier orden en cualquier lugar de una cadena. | [10] coincide con 012, 120, 210 Ejemplos |
- | Crea un rango de caracteres entre corchetes para que coincidan en cualquier parte de una cadena. | [0-9] coincide con cualquier número del 0 al 9. Ejemplos |
Escape
“Basado | Descripción | Ejemplo |
---|---|---|
\\ | Indica que el carácter adyacente se debe interpretar literalmente en lugar de como un metacarácter de regex. |
\\ indica que el punto adyacente debe interpretarse como un punto o decimal, en lugar de como un comodín. 216\\.239\\.32\\.34 coincide con 216.239.32.34 Ejemplos |
Clases de caracteres
Clase | Caracteres |
---|---|
\d | dígitos (≡ [0-9]) |
\D | No son dígitos (≡ [^0-9]) |
\s | espacio en blanco (≡ [\t\n\f\r ]) |
\S | No es espacio en blanco (≡ [^\t\n\f\r ]) |
\w | Caracteres de palabra (≡ [0-9A-Za-z_]) |
\W | no son caracteres de palabra (≡ [^0-9A-Za-z_]) |
Sugerencias
Usa expresiones sencillas
Mantén tus expresiones regulares simples. Las expresiones simples son más fáciles de interpretar y modificar para otro usuario.
Distinción entre mayúsculas y minúsculas
Las expresiones regulares distinguen mayúsculas de minúsculas de forma predeterminada. Puedes hacer que la coincidencia no distinga entre mayúsculas y minúsculas con la marca (?i)
. Por ejemplo, esta expresión extrae "abc123" y "ABC123":
REGEXP_EXTRACT(MyField, '(?i)(a.*)')
Cómo escapar un carácter de barra inversa
Si deseas escribir una condición de filtro que incluya un carácter de barra inversa, debes escapar el carácter de barra inversa con un segundo carácter de barra inversa.
Por ejemplo, la siguiente expresión verifica si un campo contiene la cadena green\yellow
:
REGEXP_CONTAINS(field_name, "green\\yellow")
También puedes anteponer una expresión con el prefijo de literal de cadena sin procesar, R. Si lo haces, no necesitarás escapar caracteres especiales, como la barra inversa. El ejemplo anterior se podría reescribir de manera equivalente de la siguiente manera:
REGEXP_CONTAINS(field_name, R"green\yellow")