Un’espressione regolare descrive il testo da cercare. Invece di una frase esatta, specifichi uno schema: per esempio, la parola «Richiesta» seguita da un numero qualsiasi. Il numero può cambiare in ogni messaggio, ma lo schema troverà comunque il testo che ti serve.
Puoi cercare date, link, singole parole, righe intere e quasi tutte le combinazioni di testo che riesci a descrivere con una regola. Pochi semplici simboli bastano per gestire valori variabili, scegliere fra più alternative e saltare i caratteri superflui. Le possibilità sono molto più ampie di quelle di una normale ricerca per parola.

Cosa puoi fare con le espressioni regolari
Nei filtri e nelle sostituzioni di FLOWIN puoi usare le espressioni regolari per:
- Aggiungere un testo qualsiasi all’inizio o alla fine dei messaggi.
- Filtrare i messaggi che contengono link.
- Rimuovere dai messaggi copiati link, numeri di telefono, indirizzi email e altri recapiti.
- Filtrare i messaggi lunghi oppure, al contrario, solo quelli brevi.
Modalità «Regexp»
Nelle impostazioni di un filtro o di una sostituzione, la modalità «Regexp» accanto al campo «Ricerca» attiva la ricerca con un’espressione regolare. Inserisci lo schema nel campo. Per creare la regola e applicarla a un inoltro, segui le istruzioni per i filtri e le sostituzioni.

Come leggere un’espressione regolare
Cominciamo dallo schema Richiesta #\d+. Trova sia Richiesta #125 sia Richiesta #8072, anche se i numeri sono diversi. Leggiamolo da sinistra a destra:
Richiesta #cerca esattamente queste lettere, lo spazio e il simbolo che precede il numero.\dindica una cifra qualsiasi da 0 a 9.+richiede una o più cifre consecutive di questo tipo.
Il testo trovato si chiama corrispondenza. Nel messaggio Richiesta #125 accettata la corrispondenza sarà Richiesta #125, mentre la parola accettata ne rimarrà fuori. In un filtro, la corrispondenza aiuta a stabilire se il messaggio soddisfa la condizione. In una sostituzione indica quale parte modificare.
Le lettere e gli spazi normali presenti nello schema vengono cercati esattamente come sono scritti. I caratteri speciali definiscono le regole. Vediamo prima i simboli principali e poi alcuni esempi pronti all’uso per diversi compiti.
Sintassi delle espressioni regolari
Per iniziare a usare le espressioni regolari occorre conoscerne la sintassi, cioè capire cosa indicano determinati caratteri.
Simboli principali
^indica l’inizio del testo.$indica la fine del testo..corrisponde a qualsiasi carattere, compresa un’interruzione di riga.\dcorrisponde a una cifra da 0 a 9.\wcorrisponde a una lettera latina, una cifra o un trattino basso.\nindica un’interruzione di riga.\tindica una tabulazione.\scorrisponde a uno spazio normale, una tabulazione, un’interruzione di riga, un ritorno a capo o un avanzamento pagina.\bverifica il confine di una parola, per esempio tra una lettera e uno spazio. Non aggiunge alcun carattere alla corrispondenza.
Quantificatori
I quantificatori indicano quante volte si ripete il carattere o il gruppo che li precede. Un gruppo riunisce più caratteri tra parentesi tonde.
*significa zero o più volte.+significa una o più volte.?significa zero o una volta.{5}significa esattamente cinque volte.{1,5}significa da una a cinque volte.{1,}significa una o più volte.{0,5}significa da zero a cinque volte.
Per esempio:
a+corrisponde aa,aa,aaae così via..*corrisponde a qualsiasi testo, anche vuoto.ab{3}corrisponde aabbb.
Gruppi
Le parentesi tonde ( ) riuniscono più caratteri in un gruppo. I gruppi si usano soprattutto con i quantificatori o con la barra verticale |, che indica l’operatore logico O.
Per esempio:
((Bob)|(Alice))corrisponde sia aBobsia aAlice.(abc){3}corrisponde aabcabcabc.
Insiemi di caratteri
Per specificare un insieme di caratteri si usano le parentesi quadre [ ]. Al loro interno puoi elencare i caratteri in questo modo:
[а-яё]corrisponde a qualsiasi lettera dell’alfabeto russo.[абвгд]o[а-д]corrisponde a una delle lettereа,б,в,гoд.[a-z]corrisponde a una qualsiasi lettera latina daaaz.[0-5]corrisponde a una cifra qualsiasi da 0 a 5.
Il simbolo ^ all’inizio dell’insieme indica una negazione logica:
[^а-яё]corrisponde a qualsiasi carattere tranne le lettere dell’alfabeto russo.[^a-z]corrisponde a qualsiasi carattere tranne le lettere latine daaaz.[^\s]corrisponde a qualsiasi carattere che non rientri in\s.
In FLOWIN \w non comprende i caratteri cirillici. [а-яё] comprende l’alfabeto russo, inclusa la lettera ё. L’intervallo [а-я] non include questa lettera.
Caratteri di escape
Per cercare un carattere speciale come testo normale anziché usarlo come parte della sintassi, lo si fa precedere da una barra rovesciata \. Questa operazione si chiama escape.
Per esempio:
:\)corrisponde a:). Qui la parentesi indica una normale parentesi, non un gruppo.chi\?corrisponde achi?. Qui il punto interrogativo non specifica il numero di ripetizioni.
Impostazioni di ricerca in FLOWIN
I flag modificano le regole generali di ricerca, per esempio stabiliscono se distinguere tra maiuscole e minuscole. In FLOWIN alcune impostazioni sono già attive, quindi uno stesso schema può comportarsi diversamente rispetto a uno strumento di prova esterno con le impostazioni predefinite.
I flag sono già configurati
Nei filtri e nelle sostituzioni sono attivi IgnoreCase (i), Singleline (s), RE2 e Unicode. Non devi aggiungerli manualmente a ogni schema. Ecco cosa comportano in pratica:
ielimina la distinzione tra maiuscole e minuscole:gattotrova siaGattosiaGATTO.spermette al punto.di trovare anche un’interruzione di riga. Di conseguenza.*può comprendere più righe in una sola corrispondenza.- La modalità multiriga
Multiline (m)è disattivata per impostazione predefinita:^e$si riferiscono all’inizio e alla fine dell’intero messaggio, non di ogni singola riga. RE2determina alcune caratteristiche della sintassi:\dcerca le cifre da 0 a 9, mentre\wcerca solo lettere latine, cifre e trattini bassi. Il flagUnicodeattivo non aggiunge il cirillico a\w.
Per gli esempi che seguono non occorre cambiare impostazioni. Se li provi in un altro servizio, tieni conto di questi valori: il fatto che i flag abbiano lo stesso nome non garantisce che i diversi motori si comportino allo stesso modo.
Schemi pronti all’uso
Scegli il compito e copia lo schema nel campo «Ricerca» in modalità «Regexp». Gli esempi mostrano esattamente il testo che viene trovato. Ciò che accadrà al messaggio dipende poi dal filtro o dalla sostituzione che hai configurato.
Il numero di una richiesta che cambia ogni volta
Trovare una richiesta senza conoscerne in anticipo il numero.
Schema:Richiesta #\d+
Testo: Richiesta #125 accettata. Richiesta #8072 in attesa di risposta.
Trova: Richiesta #125, Richiesta #8072.
Il testo «Richiesta #» è fisso e \d+ trova una o più cifre consecutive. Anche lo spazio prima di # fa parte dello schema. «Richiesta #ABC» non corrisponde.
Messaggi composti solo da sei cifre
Selezionare i messaggi che contengono soltanto un codice di sei cifre.
Schema:^\d{6}$
Testo: 482901
Trova: 482901.
L’inizio e la fine delimitano l’intero messaggio e {6} richiede sei cifre. «Codice: 482901», «48290» e «482901 » con uno spazio finale non corrispondono.
Una tra più varianti di testo
Trovare i messaggi che menzionano uno di due stati.
Schema:fatto|annullato
Testo: Fatto: file inviato. L’altro compito è stato annullato.
Trova: Fatto, annullato.
La barra verticale significa «oppure». Non c’è distinzione tra maiuscole e minuscole. In assenza di confini di parola, lo schema troverà «fatto» anche in «manufatto».
Una parola intera, escludendo le corrispondenze all’interno di altre parole
Trovare «gatto» escludendo «gattone» e «sgattolare».
Schema:\bgatto\b
Testo: Gatto, gattone e sgattolare.
Trova: Gatto.
\b su entrambi i lati verifica i confini della parola. Gli spazi e i segni di punteggiatura possono separarla dal testo circostante, ma non vengono inclusi nella corrispondenza.
Una data nel formato giorno.mese.anno
Trovare una data con due cifre per il giorno e il mese e quattro per l’anno.
Schema:\d{2}\.\d{2}\.\d{4}
Testo: Riunione il 16.10.2026 alle 12:00.
Trova: 16.10.2026.
\. indica un punto letterale, non un carattere qualsiasi. Lo schema verifica il formato, ma non il calendario: anche «99.99.2026» darà una corrispondenza.
Hashtag in russo e in inglese
Trovare hashtag composti da lettere, cifre e trattini bassi.
Schema:#[а-яёa-z0-9_]+
Testo: #Новости #release_2 #всё_готово
Trova: #Новости, #release_2, #всё_готово.
Dopo # compaiono uno o più caratteri dell’insieme. Uno spazio o un trattino interrompe la corrispondenza: in «#piano-del-giorno» verrà trovato soltanto «#piano».
Menzioni nella forma @username
Trovare un testo che abbia la forma di una menzione di un utente o di un canale.
Schema:@[a-z0-9_]{3,}
Testo: Autore: @news_room. Un altro: @ab.
Trova: @news_room.
Dopo @ servono almeno tre caratteri tra lettere latine, cifre e trattini bassi. Lo schema cerca la forma della menzione senza verificare l’esistenza dell’utente. Può anche trovare una parte di un indirizzo email.
Link con http:// o https://
Trovare un indirizzo web scritto per esteso con il protocollo.
Schema:https?:\/\/[^\s]+
Testo: Apri https://example.org/page e http://example.org
Trova: https://example.org/page, http://example.org.
La lettera s è facoltativa. Dopo // lo schema prende tutti i caratteri fino allo spazio successivo o a un altro separatore compreso in \s. Gli indirizzi senza protocollo non corrispondono, mentre una virgola o un punto attaccati all’indirizzo potrebbero venire inclusi nella corrispondenza.
Numero di telefono con +7 e dieci cifre
Trovare un numero scritto senza interruzioni, parentesi, spazi o trattini.
Schema:\+7\d{10}
Testo: Contatto: +79991234567
Trova: +79991234567.
\+ cerca un normale segno più e \d{10} richiede esattamente dieci cifre dopo il 7. «+7 (999) 123-45-67» non corrisponderà. Viene cercato il formato del numero senza verificarne l’esistenza. È possibile trovare una corrispondenza anche all’interno di una sequenza di cifre più lunga.
Messaggi che iniziano con una certa etichetta
Trovare l’etichetta «Importante:» solo all’inizio del messaggio.
Schema:^Importante:
Testo: IMPORTANTE: la riunione è stata rinviata.
Trova: IMPORTANTE:.
^ verifica l’inizio dell’intero testo. In «Aggiornamento: Importante: la riunione è stata rinviata» non ci saranno corrispondenze. L’etichetta all’inizio della seconda riga non corrisponderà, perché la modalità multiriga è disattivata per impostazione predefinita.
Spazi superflui tra le parole
Trovare due o più spazi normali consecutivi per sostituirli con uno solo.
Schema:[ ]{2,}
Nel testo Testo··con···spazi verranno trovati due gruppi, uno di due spazi e uno di tre. Il simbolo · qui rende visibile lo spazio normale e non va digitato.
Tra le parentesi quadre c’è uno spazio normale e {2,} ne richiede almeno due consecutivi. Per eliminare gli spazi superflui si sostituiscono le corrispondenze con un solo spazio. Lo schema non tocca le interruzioni di riga.
Messaggi brevi fino a cento caratteri
Selezionare i messaggi non vuoti di lunghezza compresa tra 1 e 100 caratteri.
Schema:^.{1,100}$
Testo: Messaggio breve
Trova: Messaggio breve.
Il punto conta qualsiasi carattere, compresi gli spazi e le interruzioni di riga. Le parentesi graffe fissano i limiti, mentre ^ e $ impongono la verifica dell’intero messaggio. Un messaggio vuoto o un testo di oltre 100 caratteri non corrisponderanno. Un’emoji composta può contare come più caratteri.
L’elenco si amplierà. Puoi proporre nuovi schemi all’assistenza contattando @value_maker.
Verificare uno schema personalizzato
Su regex101.com puoi provare le tue espressioni regolari. Le impostazioni di ricerca potrebbero differire da quelle di FLOWIN. Prima di usare uno schema in un inoltro di lavoro, provalo con messaggi di test, sia con sia senza una corrispondenza prevista.
Domande frequenti
Quando bastano «Testo» o «Lista» e quando serve «Regexp»?
La modalità «Testo» è adatta a una frase nota, mentre con «Lista» puoi elencare più alternative. «Regexp» serve quando il testo cambia secondo una regola, per esempio se la parola «Richiesta» è seguita ogni volta da un numero diverso. Permette anche di definire i confini di una parola o il numero di caratteri. Per stabilire l’azione da applicare al messaggio trovato, configura separatamente il filtro o la sostituzione.
Perché un’espressione provata online si comporta diversamente in FLOWIN?
Il risultato dipende dal motore e dalle impostazioni di ricerca. Nei filtri e nelle sostituzioni di FLOWIN sono già attivi IgnoreCase, Singleline, RE2 e Unicode, mentre Multiline è disattivato per impostazione predefinita. La ricerca quindi non distingue tra maiuscole e minuscole, il punto può corrispondere a un’interruzione di riga e ^ e $ si riferiscono all’intero messaggio. Controlla le impostazioni di ricerca e prova l’espressione in FLOWIN sia su messaggi per cui prevedi una corrispondenza, sia su messaggi che non dovrebbero corrispondere.
Perché .* comprende più righe?
In FLOWIN è attivo Singleline, quindi il punto corrisponde anche a un’interruzione di riga. Per questo .* non deve necessariamente fermarsi alla fine della prima riga. Se cerchi il testo fino all’interruzione di riga successiva, puoi usare [^\r\n]+: questo schema cerca uno o più caratteri diversi dal ritorno a capo e dall’interruzione di riga.
Perché \w non trova le lettere russe?
Nelle impostazioni di ricerca di FLOWIN \w comprende lettere latine, cifre e trattini bassi. Per le lettere russe usa [а-яё] e per una sequenza di queste lettere usa [а-яё]+. La lettera ё va indicata a parte perché l’intervallo а-я non la include. Non occorre distinguere le maiuscole dalle minuscole, perché la ricerca ignora già questa differenza.
Come trovo una parola intera escludendo le corrispondenze all’interno di altre parole?
Aggiungi \b a entrambi i lati della parola. Per esempio, \bgatto\b troverà «Gatto» nel testo «Gatto, gattone e sgattolare», ma ignorerà le altre due parole. I confini verificano la posizione della parola, mentre gli spazi e i segni di punteggiatura non fanno parte della corrispondenza.
Lo schema dell’esempio verifica che la data esista davvero?
No. L’espressione \d{2}\.\d{2}\.\d{4} verifica solo il formato: due cifre, un punto, due cifre, un punto e quattro cifre. Troverà quindi sia 16.10.2026 sia 99.99.2026. L’esempio serve a individuare parti di testo che somigliano a date, ma non conferma la validità del giorno o del mese.
Cosa controllo se l’espressione regolare non trova nulla?
Per prima cosa assicurati che accanto al campo «Ricerca» sia selezionato «Regexp». Confronta quindi lo schema con il testo originale: anche gli spazi, le interruzioni di riga e i simboli letterali incidono sulla corrispondenza. Per esempio, Richiesta #\d+ richiede uno spazio prima di # e delle cifre dopo, quindi non troverà Richiesta#125 o Richiesta #ABC. Verifica anche i delimitatori ^ e $: per impostazione predefinita si riferiscono all’intero messaggio. Inizia da un semplice estratto e aggiungi le condizioni una alla volta verificando il risultato a ogni passaggio.