I Filtri nelle Regex sono Case Sensitive

Nell’articolo “Non puoi usare in GA4 le Regex di GA3” ho descritto come nei report di GA4 sono supportate solo Regex complete, tant’è che le Regex parziali non compaiono come opzione nelle condizioni dei Filtri.

Per questo motivo, oltre a dover porre attenzione nello scrivere le espressioni regolari con una sintassi completa rispetto a quanto eravamo abituati con Universal Analytics, è necessario avere un occhio di riguardo alla gestione del case sensitive, ovvero delle lettere maiuscole e minuscole.

Facciamo un esempio

Poniamo di voler filtrare tutte le pagine che contengono nel titolo la parola “funzione“, compreso il suo plurale “funzioni“.

Il tutto sembra funzionare correttamente utilizzando l’espressione regolare:

.*(funzione|funzioni).*

Come mostrato in Fig. 1:

Fig. 1 – Regex che filtra solo le parole indicate scritte in minuscolo

Tuttavia, con un controllo approfondito, può nascere il dubbio che con questa regex vengono escluse le parole desiderate che contengono al suo interno lettere maiuscole.

Ed è proprio così…!

Nelle espressioni regolari complete, l’annullamento del vincolo dato dal case sensitive si ottiene anteponendo alla regex i caratteri (?i).

Trasformando l’espressione vista in precedenza in questa:

(?i).*(funzione|funzioni).*

La sensibilità sulle maiuscole e minuscole viene meno. Ed ecco nel report, Fig. 2), che compaiono anche altre righe contenenti le parole “Funzione” e “Funzioni” e non solo “funzione” e “funzioni“:

Fig. 2 – Regex che filtra sia le parole indicate scritte in minuscolo che in maiuscolo

Soluzione

Quando si filtrano stringhe di testo, a meno che non ci siano esigenze con particolari restrizioni, è buona norma anteporre sempre i caratteri (?i) all’espressione regolare.

Non farlo può comportare l’ottenimento di un risultato parziale, e il rischio maggiore è quello di non accorgersene.