2.6 KiB
Common Regex Syntax
Classi Di Caratteri
\d
qualsiasi cifra (0-9)
\D
qualsiasi carattere non cifra
\s
spazio bianco (space, tab, new line)
\S
qualsiasi carattere non spazio binaco
\w
qualsiasi carattere alfanumerico(a-z, A-Z)
\W
qualsiasi carattere non alfanumerico
\b
spazio intorno alle parole (solo inizio o fine stringa)
\B
spazio intorno alle parole (solo se all'interno della stringa, no ad inizio o fine)
\A
ricerca solo all'inizio della stringa
\Z
ricerca solo al fondo della stringa
.
tutti i caratteri tranne linea nuova (CRLF)
Quantificatori
+
una o più ripetizioni
*
zero o più ripetizioni
?
zero o una ripetizione
{m}
esattamente m volte
{m, n}
minimo m volte massimo n volte
The *
, x
, and ?
qualifiers are all greedy; they match as much text as possible
Adding ?
after the qualifier makes it perform the match in non-greedy or minimal fashion; as few characters as possible will be matched.
Caratteri Speciali
\a, \b, \f, \n, \r, \t, \u, \U, \v, \x, \\, \?, \*, \+ , \., \^, \$
caratteri speciali
\(
, \)
escape delle parentesi nella stringa
Delimitatori
^
cerca corrispondenza ad inizio stringa o linea
$
cerca corrispondenza a fondo stringa o linea
^__$
corrispondenza deve essere l'intera stringa
Classi Caratteri
[__]
un carattere tra quelli nella classe ([ab]
--> a or b)
[__]{m , n}
caratteri consecutivi tra quelli nella classe ([aeiou]{2}
--> ae, ao, ...)
[a-z]
sequenza di caratteri minuscoli
[A-Z]
sequenza di caratteri maiuscoli
[a-zA-Z]
sequenza di carateri minuscoli o maiuscoli
[a-z][A-Z]
equenza di caratteri miuscoli seguiti da sequenza di caratteri maiuscoli
[^__]
tutto tranne quello nella classe (attenzione: includere \n
per evitare di includere linee multiple di testo)
GLi unici simboli con effetto nelle classi di caratteri sono ^
, \
, -
e ]
.
Per essere usati devono essere usati come escape: [\]\[\^\-]
Gruppi
(__)
sottogruppo della REGEX, utile per raggruppare parti della REGEX
(REGEX_1 | REGEX_2)
cerca corrispondenza di REGEX multiple (R1 OR R2)
(?#__)
cerca commenti
(?=__)
corrisponde solo se __
è prossima substringa
(?!__)
corrisponde solo se __
non è prossima substringa
(?<=__)
corrisponde se __
è substringa precedente
(?<!__)
corrisponde solo se __
non è substringa precedente
\<number>
fa riferimento all'n-esimo gruppo.
Casi Particolari
(.*)
corrisponde con qualsiasi cosa
(.*?)
corrisponde con qualsiasi cosa, non-greedy match