Expresiones regulares en Looker Studio

Una expresión regular (regexp) es una secuencia específica de caracteres que coincide con patrones de tus datos o con parte de estos. Puedes usarlas para crear filtros más flexibles en gráficos y controles. También puedes usar las siguientes funciones de expresión regular en fórmulas de campos calculados:

FunciónDescripción
REGEXP_CONTAINS Devuelve true si el valor de entrada contiene el patrón de expresión regular. De lo contrario, devuelve false.

Más información sobre REGEXP_CONTAINS
REGEXP_EXTRACT Devuelve la primera cadena secundaria del valor de entrada que coincide con el patrón de expresión regular.

Más información sobre REGEXP_EXTRACT
REGEXP_MATCH Devuelve true si el valor de entrada coincide con el patrón de expresión regular. De lo contrario, devuelve false.

Más información sobre REGEXP_MATCH
REGEXP_REPLACE Sustituye todas las repeticiones del texto que coinciden con el patrón de expresión regular del valor de entrada por la cadena de sustitución.

Más información sobre REGEXP_REPLACE

Alternativas al uso de expresiones regulares

Crear expresiones regulares puede ser una tarea compleja. Antes de utilizar una función regexp, piensa si puedes usar una función de texto más sencilla para lograr tu objetivo. Con las siguientes funciones puedes tener funcionalidades similares a las de las expresiones regulares sin necesidad de conocer la sintaxis de las expresiones regulares.

Función Descripción
CONTAINS_TEXT

Devuelve true si se encuentra el texto especificado en el campo o la expresión. De lo contrario, devuelve false.

ENDS_WITH

Devuelve true si el campo o la expresión terminan en el texto especificado. De lo contrario, devuelve false.

LEFT_TEXT

Devuelve el primer carácter o los primeros caracteres de la cadena especificada.

REPLACE Devuelve una copia del texto original con todas las repeticiones del texto de búsqueda sustituidas por el texto de sustitución.
RIGHT_TEXT

Devuelve el último carácter o los últimos caracteres de la cadena especificada.

STARTS_WITH

Devuelve true si el campo o la expresión empiezan por el texto especificado. De lo contrario, devuelve false.

TRIM

Devuelve el texto sin espacios al principio ni al final.

Ejemplos de expresiones regulares

Coincide si MyField contiene caracteres de espacio:

REGEXP_CONTAINS(MyField, "\\s+")

Extrae el directorio principal de una URL:

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

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

Puedes clasificar 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 se aplica esta expresión regular a la dimensión Campaña en la cuenta de demostración de Google Analytics, se obtienen estos resultados:

Campaña Idioma
Campaña n.º 1j Otro idioma
1000549 | Google Analytics Demo | DR | apuntes | NA | US | en | Hybrid | AW SEM | BKWS | ~ AW - Google Brand (US) Inglés
1000549 | Google Analytics Demo | DR | apuntes | NA | CA | es | Hybrid | AW SEM | BKWS | ~ AW - YouTube (CA) Español

Cambiar el orden de las partes de 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 habituales que puedes usar. Tenga en cuenta que estos ejemplos se abrirán en el Centro de Ayuda de Google Analytics, pero la información que allí se ofrece también sirve para Looker Studio.

Comodines

CarácterDescripciónEjemplo
. Coincide con cualquier carácter (letra, número o símbolo). 1. coincide con 10 y 1A

1.1 coincide con 111 y 1A1

Ejemplos
? Coincide una vez con el carácter que le precede, o lo omite. 10? coincide con 1 y 10

Ejemplos
+ Coincide una o más veces con el carácter que le precede. 10+ coincide con 10 y 100

Ejemplos
* Coincide varias veces con el carácter que le precede, o lo omite. 1* coincide con 1 y 10

Ejemplos
| Crea una coincidencia OR.

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

Ejemplos

Anclajes

CarácterDescripciónEjemplo
^ Coincide con los caracteres adyacentes al principio de una cadena. ^10 coincide con 10 , 10 0 y 10 x

^10 no coincide con 1 10 ni con 1 10 x

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

10$ no coincide con 100 ni con 10x

Ejemplos

Grupos

CarácterDescripciónEjemplo
( ) Coincide con los caracteres entre corchetes en el mismo orden, en cualquier punto de la cadena.

También se usa para agrupar otras expresiones.
(10) coincide con 10, 101 y 1011

([0-9]|[a-z]) coincide con cualquier número o letra minúscula.

Ejemplos
[ ] Coincide con los caracteres entre corchetes en cualquier orden y punto de la cadena. [10] coincide con 012, 120 y 210

Ejemplos
- Concuerda con cualquier carácter contemplado en el intervalo de caracteres definido entre los corchetes, en cualquier punto de la cadena. [0-9] coincide con cualquier número del 0 al 9

Ejemplos

Escape

CarácterDescripciónEjemplo
\\

Indica que el carácter adyacente debería interpretarse literalmente y no como un metacarácter de expresión regular.

\\ indica que el punto adyacente debería interpretarse como un punto o decimal y no como un comodín.

216\\.239\\.32\\.34 coincide con 216.239.32.34

Ejemplos

Clases de caracteres

ClaseCaracteres
\d dígitos (≡ [0-9])
\D no son dígitos (≡ [^0-9])
\s espacio (≡ [\t\n\f\r ])
\S no es un espacio (≡ [^\t\n\f\r ])
\w caracteres de palabra (≡ [0-9A-Za-z_])
\W no son caracteres de palabra (≡ [^0-9A-Za-z_])

Consejos

Usar expresiones sencillas

Simplifica las expresiones regulares en la medida de lo posible para que cualquiera pueda interpretarlas y modificarlas.

Distinción entre mayúsculas y minúsculas

Las expresiones regulares distinguen entre mayúsculas y minúsculas de forma predeterminada. Para que no se distinga entre mayúsculas y minúsculas, utiliza la marca (?i). Por ejemplo, esta expresión extrae "abc123" y "ABC123":

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

Escapar el carácter de barra inversa

Si quieres escribir una condición de filtro que incluya el carácter de barra inversa, debes usar otro carácter de barra inversa para escapar el primero.

Por ejemplo, la siguiente expresión comprueba si un campo contiene la cadena green\yellow:

REGEXP_CONTAINS(field_name, "green\\yellow")

También puedes añadir el prefijo literal de cadena sin formato, R, a una expresión. Si lo haces, no tendrás que usar caracteres de escape para caracteres especiales, como la barra invertida. El ejemplo anterior se podría reescribir de la siguiente manera:

REGEXP_CONTAINS(field_name, R"green\yellow")