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ón | Descripció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ácter | Descripción | Ejemplo |
---|---|---|
. | 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ácter | Descripción | Ejemplo |
---|---|---|
^ | 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ácter | Descripción | Ejemplo |
---|---|---|
( ) | 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ácter | Descripción | Ejemplo |
---|---|---|
\\ | 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
Clase | 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_]) |
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")