Las expresiones regulares ("regex") son secuencias específicas de caracteres que coinciden 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:
REGEXP_CONTAINS | Devuelve "verdadero" si el valor de entrada contiene el patrón de expresión regular. De lo contrario, devuelve "falso". Más información |
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 |
REGEXP_MATCH | Devuelve "verdadero" si el valor de entrada coincide con el patrón de expresión regular. De lo contrario, devuelve "falso". Más información |
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 |
Ejemplos
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:
Por ejemplo, si se aplica 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.º 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 |
Puedes cambiar el orden de las partes de una cadena:
En el ejemplo anterior, las partes están separadas por dos puntos (:).
Metacaracteres de regex
Los metacaracteres son caracteres que tienen un significado especial en una expresión regular. A continuación, se incluyen algunos de los más habituales que puedes usar. Los ejemplos se proporcionan en el Centro de Ayuda de Google Analytics, pero la información que allí se ofrece también sirve para Looker Studio.
Consulta la documentación de google/RE2 en GitHub para ver la sintaxis completa de las expresiones regulares.
Comodines
. | 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 utilizar 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, 100 y 10x ^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 con 10x Ejemplos |
Grupos
( ) | Coincide con los caracteres entre paréntesis en el mismo orden, en cualquier punto de la cadena También se utiliza para agrupar otras expresiones |
(10) coincide con 10, 101 y 1011 ([0-9]|[a-z]) coincide con cualquier número o letra en minúsculas Ejemplos |
[ ] | Coincide con los caracteres entre corchetes en cualquier orden y punto de la cadena | [10] coincide con 01 2, 1 20 y 2 10 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
\ |
Indica que el carácter adyacente debería interpretarse literalmente y no como un metacarácter de regex. Consulta la nota que se incluye a continuación sobre los metacaracteres de coincidencia. |
\. indica que el punto adyacente debe 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
\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_]) |
Notas
Utilizar expresiones simples
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
(?i)
. Por ejemplo:REGEXP_EXTRACT(MyField, '(?i)(a.*)')
extrae tanto "abc123" como "ABC123".
Escapar la barra inversa
Como se ha mencionado anteriormente, puedes utilizar la barra inversa (\) para escapar los metacaracteres de regex cuando estos deban interpretarse de forma literal. Para buscar una coincidencia con una barra inversa en una cadena entrecomillada, también deberás escapar dicha barra, con lo que tendrás dos barras inversas en la regex. Por ejemplo:
REGEXP_REPLACE(String, "(\\[.*\\])\\+(\\[.*\\])","\\2 \\1")
También puedes usar el prefijo literal de cadena sin formato, R:
REGEXP_REPLACE(String, R"(\[.*\])\+(\[.*\])",R"\2 \1")