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