Un'espressione regolare ("regexp") è una sequenza specifica di caratteri che corrispondono in modo più o meno ampio a modelli presenti nei tuoi dati. Puoi utilizzarla 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ù. |
REGEXP_EXTRACT | Restituisce la prima sottostringa corrispondente nel valore di input che corrisponde al modello di espressione regolare. Scopri di più. |
REGEXP_MATCH | Restituisce true se il valore di input corrisponde al modello di espressione regolare. In caso contrario, restituisce false. Scopri di più. |
REGEXP_REPLACE | Sostituisce tutte le occorrenze di testo corrispondenti al modello di espressione regolare nel valore di input con la stringa di sostituzione. Scopri di più. |
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 espressioni regolari.
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. In caso contrario, 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
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 riportata sopra restituisce looker-studio
.
Classifica le campagne pubblicitarie in base alla lingua:
Ad esempio, l'applicazione di questa funzione alla dimensione Campagna nell'account dimostrativo Google Analytics produce i seguenti risultati:
Campagna | Lingua |
---|---|
Campagna n. 1 | Altra lingua |
1000549 | Google Analytics Demo | DR | apontes | NA | US | en | Hybrid | AW SEM | BKWS | ~ AW - Google Brand (US) | Inglese |
1000549 | Google Analytics Demo | DR | apontes | NA | CA | es | Hybrid | AW SEM | BKWS | ~ AW - YouTube (CA) | Spagnolo |
Inverte l'ordine delle sezioni in una stringa:
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 gli esempi si aprono nel Centro assistenza Google Analytics, ma le informazioni presentate si applicano anche a Looker Studio.
Per la sintassi completa delle espressioni regolari, consulta la documentazione google/RE2 di GitHub.
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 volte o 1 volta | 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 Da 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, 100, 10x ^10 non corrisponde a 110, 110x Esempi |
$ | Corrisponde ai caratteri adiacenti alla fine di una stringa | 10$ corrisponde a 110, 1010 10$ non corrisponde a 100, 10x Esempi |
Gruppi
( ) | Corrisponde ai caratteri racchiusi nell'esatto ordine in qualsiasi punto di una stringa Usato anche per raggruppare altre espressioni |
(10) corrisponde a 10, 101, 1011 ([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 012, 120, 210 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 |
Carattere di escape
\ |
Indica che il carattere adiacente deve essere interpretato letteralmente anziché come un metacarattere regex Vedi la nota riportata di seguito sui metacaratteri corrispondenti |
\. 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
Utilizza espressioni semplici
Mantieni semplici le espressioni regolari. Le espressioni semplici sono più facili da interpretare e modificare per un altro utente.
Sensibilità alle maiuscole
(?i)
per fare in modo che la corrispondenza non faccia distinzione tra maiuscole e minuscole. Ad esempio:REGEXP_EXTRACT(MyField, '(?i)(a.*)')
estrae sia "abc123" sia "ABC123".
Esegui l'escape della barra rovesciata
Come indicato sopra, 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")