Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Una RegEx è fondamentalmente un testo. Se voglio cercare "gatto" mi basta cercare "gatto". Però ci sono dei simboli speciali:
- Simboli speciali:
- .
- Qualsiasi carattere tranne invio a capo. Se il flag DOTALL è impostato, vale anche l'invio a capo.
- ^
- Inizio stringa
- $
- Fine stringa
- \
- Carattere di escape per i simboli speciali (es: . = tutti i caratteri, \. = il punto)
- ()
- Indica un gruppo di caratteri, che devono essere trovati tutti assieme (es: (gatto) = gatto, non "gat to"). Ogni gruppo trovato è identificato da un numero. Il numero può poi essere usato nel replace, chiamandolo con la forma \g<1> oppure \1 (es: in ga(tt)o, il simbolo \1 è "tt"). In Notepad++, \U\1 rende il gruppo maiuscolo, mentre \L\1 lo rende minuscolo.
- []
- Indica uno qualsiasi dei caratteri all'interno delle parentesi (gatt[oa] = gatto oppure gatta)
- -
- Un range di caratteri: a-z indica tutte le lettere minuscole, A-Z tutte le maiuscole, 0-9 tutte le cifre, 0-5 le cifre da 0 a 5,
- [^]
- Indica un qualsiasi carattere non contenuto nelle parentesi (es: [^0-9] indica qualsiasi carattere non sia un numero)
- |
- Operatore logico OR (es: (gatto|gatta) troverà gatto oppure gatta)
- (?i)
- Cerca come case insensitive solo l'espressione tra parentesi (solo Python)
- (?s)
- Applica il DOTALL solo per l'espressione tra parentesi (solo Python)
- (?=)
- Lookahead: trova l'espressione precedente solo se è seguita dal contenuto tra parentesi. (Es: Isaac (?=Asimov) troverà 'Isaac ' solo se seguito da 'Asimov')
- (?!)
- Negative lookahead: trova l'espressione precedente solo se non è seguita dal contenuto tra parentesi. Nella forma ^((?!testo).)*$ troverà tutte le righe che non contengono la parola "testo".
- (?<=)
- Lookbehind: trova l'espressione seguente solo se preceduta dal contenuto tra parentesi.
- (?<!...)
- Negative lookbehind: trova l'espressione seguente solo se non preceduta dal contenuto tra parentesi.
- \b
- word boundary: trova l'inizio o la fine di una parola.
- \B
- trova un carattere che non sia ne all'inizio ne alla fine di un parola
- \d
- Trova un numero (digit) (in ASCII è uguale a [0-9], ma vale anche per codifiche diverse dalla latina)
- \D
- Trova un carattere che non sia un numero
- \s
- Trova uno spazio di qualche tipo (spazio, tabulazione, invio a capo, eccetera)
- \S
- Trova un carattere che non sia uno spazio
- \t
- Trova una tabulazione
- \n \r
- Trova un invio a capo (\r è CR, \n è \LF). Soluzione completa: [\r\n]+
- \w
- Trova un carattere che possa far parte di una parola alfanumerico: significa una lettera qualsiasi, un numero, o l'underscore.
- \W
- Trova un qualsiasi carattere non alfanumerico
- QUANTIFICATORI
- *
- Trova 0 o più occorrenze dell'espressione
- +
- Trova 1 o più occorrenze dell'espressione
- ?
- Trova 0 o 1 occorrenze dell'espressione
- {m}
- Trova esattamente m occorrenze dell'espressione
- {m,n}
- Trova tra le m e le n occorrenze dell'espressione (più possibile, comunque).
- *?, +?, ??, {m,n}?
- Modificatore non-greedy, cerca di identificare meno caratteri possibile.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement