Espressioni regolari in Looker Studio

Un'espressione regolare (regex) è una sequenza specifica di caratteri che corrispondono in modo più o meno preciso a modelli presenti nei tuoi dati. Puoi utilizzare espressioni regolari per creare filtri più flessibili nei grafici e nei controlli. Puoi anche utilizzare le seguenti funzioni di espressione regolare nelle formule dei campi calcolati:

REGEXP_CONTAINS Restituisce true se il valore di input contiene il modello di espressione regolare. In caso contrario, restituisce false.

Scopri di più su REGEXP_CONTAINS.
REGEXP_EXTRACT Restituisce la prima sottostringa corrispondente nel valore di input che corrisponde al modello di espressione regolare.

Scopri di più su REGEXP_EXTRACT.
REGEXP_MATCH Restituisce true se il valore di input corrisponde al modello di espressione regolare. In caso contrario, restituisce false.

Scopri di più su REGEXP_MATCH.
EGEXP_REPLACE Sostituisce tutte le occorrenze di testo corrispondenti al pattern dell'espressione regolare nel valore di input con la stringa di sostituzione.

Scopri di più su EGEXP_REPLACE.

Alternative all'utilizzo delle espressioni regolari

La creazione di espressioni regolari può essere complessa. Prima di utilizzare una funzione regexp, valuta se utilizzare una funzione di testo più semplice per raggiungere il tuo obiettivo. Le seguenti funzioni forniscono una funzionalità simile a quella delle espressioni regolari senza che tu debba conoscere la sintassi delle regexp.

Funzione Descrizione
CONTAINS_TEXT

Restituisce true se il testo specificato viene individuato nel campo o nell'espressione. In caso contrario, restituisce false.

ENDS_WITH

Restituisce true se il campo o l'espressione termina con il testo specificato, altrimenti restituisce false.

LEFT_TEXT

Restituisce un numero di caratteri a partire dall'inizio di una stringa specificata.

REPLACE Restituisce una copia del testo originale in cui tutte le occorrenze del testo di ricerca sono state sostituite con il testo sostitutivo.
RIGHT_TEXT

Restituisce un numero di caratteri a partire dalla fine di una stringa specificata.

STARTS_WITH

Restituisce true se il campo o l'espressione inizia con il testo specificato. In caso contrario, restituisce false.

TRIM

Restituisce il testo con gli spazi iniziali e finali rimossi.

Esempi di espressioni regolari

Corrisponde se il campo MyField contiene spazi:

REGEXP_CONTAINS(MyField, "\\s+")

Estrae la directory di primo livello in un URL:

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

Ad esempio, se il campo URL contiene l'indirizzo di questa pagina, la funzione precedente restituisce looker-studio.

Classifica le campagne pubblicitarie in base alla lingua:

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

Ad esempio, l'applicazione di questa espressione regolare alla dimensione Campagna nell'account dimostrativo Google Analytics produce i seguenti risultati:

Campagna Lingua
Campaign #1 Altra lingua
1000549 | Demo di Google Analytics | RE | apontes | NA | US | en | Ibrida | SEM AW | BKWS | ~ AW - Brand Google (US) Inglese
1000549 | Demo di Google Analytics | RE | apontes | NA | CA | es | Ibrida | SEM AW | BKWS | ~ AW - YouTube (CA) Spagnolo

Inverte l'ordine delle sezioni in una stringa:

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

Nell'esempio precedente, le sezioni sono separate dai due punti (:).

Metacaratteri

I metacaratteri sono caratteri che hanno un significato speciale in un'espressione regolare. Di seguito sono elencati alcuni dei metacaratteri più comuni che puoi utilizzare. Tieni presente che questi esempi si aprono nel Centro assistenza Google Analytics, ma le informazioni presentate si applicano anche a Looker Studio.

Caratteri jolly

. Corrisponde a qualsiasi carattere singolo (lettera, numero o simbolo). 1. corrisponde a 10, 1A

1.1 corrisponde a 111, 1A1

Esempi
? Corrisponde al carattere che lo precede 0 o 1 volte. 10? corrisponde a 1, 10

Esempi
+ Corrisponde al carattere che lo precede 1 o più volte. 10+ corrisponde a 10, 100

Esempi
* Corrisponde al carattere che lo precede 0 o più volte. 1* corrisponde a 1, 10

Esempi
| Crea una corrispondenza OR.

Non utilizzare alla fine di un'espressione.
1|10 corrisponde a 1, 10

Esempi

Ancoraggi

^ Corrisponde ai caratteri adiacenti all'inizio di una stringa. ^10 corrisponde a 10 , 10 0, 10 x

^10 non corrisponde a 1 10 , 1 10 x

Esempi
$ Corrisponde ai caratteri adiacenti alla fine di una stringa. 10$ corrisponde a 1 10 , 10 10

10$ non corrisponde a 10 0, 10 x

Esempi

Gruppi

( ) Corrisponde ai caratteri racchiusi nell'esatto ordine in qualsiasi punto di una stringa.

Utilizzato anche per raggruppare altre espressioni.
(10) corrisponde a 10 , 10 1, 10 11

([0-9]|[a-z]) corrisponde a qualsiasi numero o lettera minuscola

Esempi
[ ] Corrisponde ai caratteri racchiusi in qualsiasi ordine in qualsiasi punto di una stringa. [10] corrisponde a 01 2, 1 20, 2 10

Esempi
- Crea un intervallo di caratteri tra parentesi corrispondente in qualsiasi punto di una stringa. [0-9] corrisponde a tutti i numeri da 0 a 9

Esempi

Esc

\\

Indica che il carattere adiacente deve essere interpretato letteralmente anziché come un metacarattere regex

\\ indica che il punto adiacente deve essere interpretato come un punto o una virgola anziché come carattere jolly

216\\.239\\.32\\.34 corrisponde a 216.239.32.34

Esempi

Classi di caratteri

\d cifre (≡ [0-9])
\D non cifre (≡ [^0-9])
\s spazio vuoto (≡ [\t\n\f\r ])
\S non spazio vuoto (≡ [^\t\n\f\r ])
\w caratteri alfanumerici (≡ [0-9A-Za-z_])
\W non caratteri alfanumerici (≡ [^0-9A-Za-z_])

Suggerimenti

Utilizzare espressioni semplici

Mantieni semplici le espressioni regolari. Le espressioni semplici sono più facili da interpretare e modificare per un altro utente.

Sensibilità alle maiuscole

Per impostazione predefinita, le espressioni regolari sono sensibili alle maiuscole. Puoi utilizzare il flag (?i) per fare in modo che la corrispondenza non faccia distinzione tra maiuscole e minuscole. Ad esempio, questa espressione estrae sia "abc123" che "ABC123":

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

Esegui l'escape della barra rovesciata

Come indicato in precedenza, devi utilizzare la barra rovesciata (\) per eseguire l'escape dei metacaratteri dell'espressione regolare quando vuoi che questi vengano interpretati letteralmente. Per creare una corrispondenza con una barra rovesciata in una stringa tra virgolette, devi eseguire l'escape anche di quella, il che significa che l'espressione includerà due barre rovesciate. Ad esempio:

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

In alternativa, puoi utilizzare il prefisso del valore letterale stringa non elaborata R:

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