Modern RegEx Flavors (PCRE)
Include C, C ++, Delphi, EditPad, Java, JavaScript, Perl, PHP (preg), PostgreSQL, PowerGREP, PowerShell, Python, REALbasic, Real Studio, Ruby, TCL, VB.Net, VBScript, wxWidgets, XML Schema, Xojo, XRegExp.
La compatibilità con PCRE può variare
Dovunque: . ^ $ * + - ? ( ) [ ] { } \ |
Legacy Flavours RegEx (BRE / ERE)
Include awk, ed, egrep, emacs, GNUlib, grep, PHP (ereg), MySQL, Oracle, R, sed.
Il supporto PCRE può essere abilitato nelle versioni successive o utilizzando le estensioni
ERE / awk / egrep / emacs
Fuori da una classe di caratteri: . ^ $ * + ? ( ) [ { } \ |
All'interno di una classe di caratteri:^ - [ ]
BRE / ED / grep / sed
Fuori da una classe di caratteri: . ^ $ * [ \
All'interno di una classe di caratteri: ^ - [ ]
per i letterali, non scappare: + ? ( ) { } |
per il comportamento regex standard, scappa:\+ \? \( \) \{ \} \|
Appunti
- Se non sei sicuro di un personaggio specifico, può essere sfuggito come
\xFF
- I caratteri alfanumerici non possono essere salvati con una barra rovesciata
- I simboli arbitrari possono essere salvati con una barra rovesciata in PCRE, ma non BRE / ERE (devono essere salvati solo quando richiesto). Per PCRE
] -
ho solo bisogno di scappare all'interno di una classe di caratteri, ma li ho tenuti in un unico elenco per semplicità
- Le stringhe di espressioni tra virgolette devono avere anche il carattere di escape dei caratteri delle virgolette circostanti e spesso con barre rovesciate raddoppiate (come
"(\")(/)(\\.)"
contro /(")(\/)(\.)/
in JavaScript)
- A parte gli escape, diverse implementazioni regex possono supportare diversi modificatori, classi di caratteri, ancore, quantificatori e altre caratteristiche. Per maggiori dettagli, controlla regular-expressions.info o usa regex101.com per testare le tue espressioni dal vivo
escape()
" per consentire l'uso di stringhe arbitrarie come parti regex.