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")