Skip to content

Token delle regex spiegati

Tutti i token regex fondamentali: ancoraggi, classi di caratteri, quantificatori, gruppi e flag. Cosa significa ciascuno, con una corrispondenza concreta. Il compagno di consultazione rapida allo strumento Regex Tester.

I token regex si compongono: unisci un ancoraggio, una classe di caratteri e un quantificatore per costruire un pattern. ^ fissa l'inizio, \d cerca una cifra e {2,4} stabilisce quante volte. Combinati in ^\d{2,4}$ corrispondono a un'intera stringa di due-quattro cifre. Leggi un pattern da sinistra a destra, un token alla volta. Lo strumento compagno Regex Tester permette di provare questi token dal vivo sul tuo testo.

Tabella di riferimento · 55 vociOpen the regex-tester tool →
55 of 55 rows
Ancoraggi
Corrisponde alla posizione all'inizio della stringa, o all'inizio di una riga con il flag m.^He → He
Corrisponde alla posizione alla fine della stringa, o alla fine di una riga con il flag m.lo$ → lo
Corrisponde a un confine di parola: la posizione tra un carattere di parola e uno che non lo è.\bcat\b → cat
Corrisponde a un non confine di parola: la posizione tra due caratteri di parola o due che non lo sono.\Bar → ar
Classi di caratteri
Corrisponde a qualsiasi carattere singolo tranne un'interruzione di riga, salvo con il flag s attivo.a.c → abc
Corrisponde a qualsiasi cifra, da 0 a 9.\d → 7
Corrisponde a qualsiasi carattere che non sia una cifra.\D → a
Corrisponde a qualsiasi carattere di parola: una lettera, una cifra o un trattino basso.\w → _
Corrisponde a qualsiasi carattere che non sia un carattere di parola.\W → !
Corrisponde a qualsiasi carattere di spaziatura: uno spazio, un tab o un'interruzione di riga.a\sb → a b
Corrisponde a qualsiasi carattere che non sia di spaziatura.\S → a
Corrisponde a uno qualunque dei caratteri elencati tra le parentesi quadre.[aeiou] → e
Corrisponde a qualsiasi carattere che non sia tra quelli elencati tra le parentesi quadre.[^aeiou] → s
Corrisponde a qualsiasi carattere singolo nell'intervallo dato, da a a z.[a-z] → m
Corrisponde a qualsiasi carattere singolo, interruzioni di riga incluse: l'idioma comune per un punto che attraversa le righe.[\s\S] → \n
Corrisponde a qualsiasi lettera unicode di qualsiasi alfabeto, con il flag u attivo.\p{L} → é
Corrisponde a qualsiasi carattere numerico unicode di qualsiasi alfabeto, con il flag u attivo.\p{N} → ٣
Sequenza di escape: corrisponde a un singolo carattere line feed.\n → line feed
Sequenza di escape: corrisponde a un singolo carattere di tabulazione.\t → tab
Sequenza di escape: corrisponde a un singolo carattere carriage return.\r → carriage return
Corrisponde al singolo carattere con il codice esadecimale a due cifre indicato.\x41 → A
Corrisponde al singolo carattere con il punto di codice esadecimale indicato, con il flag u attivo.\u{1F600} → 😀
Intersezione di classi, col flag v: corrisponde ai caratteri presenti in entrambi gli insiemi insieme.[[a-z]&&[^aeiou]] → t
Quantificatori
Corrisponde al token precedente zero o più volte.ab* → abbb
Corrisponde al token precedente una o più volte.a+ → aaa
Corrisponde al token precedente zero o una volta, rendendolo facoltativo.colou?r → color
Corrisponde al token precedente esattamente n volte.a{3} → aaa
Corrisponde al token precedente n o più volte.a{2,} → aaaa
Corrisponde al token precedente da n a m volte, estremi inclusi.a{2,4} → aaa
Quantificatore lazy: corrisponde al token precedente zero o più volte, catturandone il meno possibile.<.*?> on <a><b> → <a>
Quantificatore lazy: corrisponde al token precedente una o più volte, catturandone il meno possibile.\d+? on 123 → 1
Quantificatore lazy: corrisponde al token precedente zero o una volta, preferendo zero.ab?? on ab → a
Quantificatore lazy: corrisponde al token precedente da n a m volte, catturandone il meno possibile.a{1,3}? on aaa → a
Quantificatore possessivo (PCRE): corrisponde al token precedente zero o più volte e lo conserva, senza mai fare backtracking per provare altre suddivisioni..*+a on aaa → no match
Gruppi e alternanza
Gruppo di cattura: corrisponde alla sequenza e la memorizza per i backreference.(ab)+ → abab
Gruppo non catturante: corrisponde alla sequenza senza memorizzarla.(?:ab)+ → abab
Lookahead positivo: corrisponde se i caratteri successivi sono abc, senza consumarli.a(?=b) → a
Lookahead negativo: corrisponde se i caratteri successivi non sono abc, senza consumarli.a(?!b) → a
Backreference: corrisponde al testo esatto catturato dal gruppo di cattura 1.(a)\1 → aa
Alternanza: corrisponde all'espressione prima o dopo la barra verticale.cat|dog → dog
Gruppo di cattura con nome: corrisponde alla sequenza e la memorizza sotto il nome indicato.(?<year>\d{4}) → year = 2026
Lookbehind positivo: corrisponde se i caratteri precedenti sono abc, senza consumarli.(?<=a)b → b
Lookbehind negativo: corrisponde se i caratteri precedenti non sono abc, senza consumarli.(?<!a)b → b
Backreference con nome: corrisponde al testo esatto catturato dal gruppo con nome.(?<w>\w+) \k<w> → the the
Gruppo atomico (PCRE): corrisponde alla sequenza una volta e non fa mai backtracking al suo interno.(?>a+)ab on aab → no match
Branch reset (PCRE): un'alternanza in cui ogni ramo riusa gli stessi numeri di gruppo.(?|(cat)|(dog)) → \1 = dog
Flag
Flag globale: trova ogni corrispondenza nella stringa, non solo la prima./a/g on aaa → a, a, a
Flag case-insensitive: ignora il maiuscolo/minuscolo durante la corrispondenza./Hi/i → hi
Flag multiline: tratta ^ e $ come inizio e fine di ogni riga./^a/m matches at the start of each line
Flag dotall: permette al punto di corrispondere anche a un'interruzione di riga./a.b/s → a\nb
Flag unicode: tratta il pattern e l'input come punti di codice unicode./\u{1F600}/u → 😀
Flag sticky: corrisponde solo alla posizione esatta impostata da lastIndex./ab/y matches only at lastIndex
Flag indices: aggiunge al risultato la posizione di inizio e fine di ogni corrispondenza./b/d on abc → indices [1, 2]
Flag unicode sets: un u più severo che permette anche operazioni di insieme dentro una classe./[a-z&&[^aeiou]]/v → t
Flag extended (PCRE): ignora gli spazi non preceduti da escape e i commenti # dentro il pattern./a b/x → ab