Expresiones regulares en Looker Studio

Una expresión regular (regex) 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 gráficos y controles. También puedes usar las siguientes funciones de expresión regular en las fórmulas de campos calculados:

REGEXP_CONTAINS Muestra verdadero si el valor de entrada contiene el patrón de expresión regular; de lo contrario, muestra falso.

Obtén más información sobre REGEXP_CONTAINS.
REGEXP_EXTRACT Muestra la primera substring 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 Muestra verdadero si el valor de entrada coincide con el patrón de expresión regular; de lo contrario, muestra falso.

Obtén más información sobre REGEXP_MATCH.
EGEXP_REPLACE Reemplaza todas las instancias de texto que coincidan 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 EGEXP_REPLACE.

Alternativas al uso de expresiones regulares

La construcción de expresiones regulares puede ser compleja. Antes de usar una función de regexp, 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 conocer la sintaxis de las regexp.

Función Descripción
CONTAINS_TEXT

Muestra verdadero si se encuentra el texto especificado en el campo o la expresión; de lo contrario, muestra falso.

ENDS_WITH

Muestra verdadero si el campo o la expresión terminan con el texto especificado; de lo contrario, muestra falso.

LEFT_TEXT

Muestra una cantidad de caracteres desde el principio de una cadena especificada.

REPLACE Muestra una copia del texto original con todas las ocurrencias del texto de búsqueda reemplazadas por el texto de reemplazo.
RIGHT_TEXT

Muestra una cantidad de caracteres desde el final de una cadena especificada.

STARTS_WITH

Muestra verdadero si el campo o la expresión comienza con el texto especificado; de lo contrario, muestra falso.

TRIM

Muestra el texto sin los 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 en una URL:

REGEXP_EXTRACT(URL, ^https://[^/]+/([^/]+)/)

Por ejemplo, si el campo URL contuviera la dirección de esta página, la función anterior mostraría looker-studio.

Categorizar 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, aplicar esta expresión regular a la dimensión Campaña en la cuenta de demostración de Google Analytics muestra los siguientes resultados:

Campaña Idioma
Campaña 1 Otro idioma
1000549 | Demostración de Google Analytics | DR | apontes | NA | EE.UU. | en | Híbrido | SEM de AW | BKWS | ~ AW: Marca de Google (EE.UU.) Inglés
1000549 | Demostración de Google Analytics | DR | apontes | NA | CA | es | Híbrido | SEM de AW | BKWS | ~ AW - YouTube (CA) Español

Cambia el orden de las secciones en una cadena:

REGEXP_REPLACE(Campaign, R'(.*):(.*)', R'\2 \1')

En el ejemplo anterior, las secciones se separan con dos puntos (:).

Metacaracteres

Los metacaracteres son caracteres que tienen un significado especial en una expresión regular. A continuación, se muestran 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

. Coincide con un solo carácter (letra, número o símbolo). 1. coincide con 10, 1A

1.1 coincide con 111, 1A1

Ejemplos
? Coincide con el carácter anterior 0 o 1 veces. 10? coincide con 1, 10

Ejemplos
+ Coincide con el carácter anterior 1 o más veces. Más de 10 coincidencias 10, 100

Ejemplos
* Coincide con el carácter anterior 0 o más veces. 1* coincide con 1, 10

Ejemplos
| Crea una concordancia O.

No se usa al final de una expresión.
1|10 coincide con 1 y 10

Ejemplos

Anclas

^ Coincide con los caracteres adyacentes al principio de una cadena. ^10 coincide con 10 , 10 0, 10 x

^10 no coincide con 1 10 , 1 10 x

Ejemplos
$ Coincide con los caracteres adyacentes al final de una cadena. 10$ coincide con 1 10 , 10 10

10 dólares no coincide con 10 0, 10 x

Ejemplos

Grupos

( ) 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 01 2, 1 20, 2 10

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

\\

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

\d dígitos (≡ [0-9])
\D no son dígitos (≡ [^0-9])
\s espacio en blanco (≡ [\t\n\f\r ])
\S no es un 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 simples

Mantén tus expresiones regulares simples. Otro usuario puede interpretar y modificar más fácilmente las expresiones simples.

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 mayúsculas de minúsculas con la marca (?i). Por ejemplo, esta expresión extrae "abc123" y "ABC123":

REGEXP_EXTRACT(MyField, '(?i)(a.*)')

Escapa la barra invertida

Como se señaló anteriormente, debes usar la barra inversa (\) para escapar de los metacaracteres de expresión regular cuando necesites que esos caracteres se interpreten literalmente. Para hacer coincidir una barra inversa en una cadena entre comillas, también deberás escaparla, lo que generará dos barras invertidas en tu expresión. Por ejemplo:

REGEXP_REPLACE(String, "(\\[.*\\])\\+(\\[.*\\])","\\2 \\1")

Como alternativa, considera usar el prefijo de literal de cadena sin procesar, R:

REGEXP_REPLACE(String, R"(\[.*\])\+(\[.*\])",R"\2 \1")