mirror of
https://github.com/m-lamonaca/dev-notes.git
synced 2025-04-07 03:16:41 +00:00
68 lines
2.6 KiB
Markdown
68 lines
2.6 KiB
Markdown
|
# 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
|