[Python] (regex) l'ancoraggio \b e \< \>

Daniele Varrazzo piro a develer.com
Mar 24 Ago 2010 11:15:51 CEST


On Tue, 24 Aug 2010 11:43:06 +0300, Karim Gorjux <lemieliste a gmail.com>
wrote:
> Non è proprio una questione di python, ma dato che regex fa parte del
> linguaggio avrei una cosa da chiedere. Seguendo il libro sulle
> espressioni regolari di un certo Beri (lol) ho letto dell'ancoraggio

lol!

> \b che viene utilizzato per definire la delimitazione di una parola.
> Ho notato che per farlo funzionare su vim invece devo usare \< per
> l'inizio parola e \> per la fine parola. Come mai? Le regex non sono
> uno standard?

Non proprio, ne esistono diversi "sapori" (flavor)... probabilmente è
stata un'evoluzione lenta in cui si è partiti da una cosa semplice, poi
hanno messo delle pezze (tipo che "\ indica un carattere speciale"), poi
hanno raffinato le pezze (tipo che "no, è un casino: \ indica sempre un
carattere non alfanumerico letterale")... Di base ci sono le sintassi posix
"basic" ed "extended", per esempio per indicare i gruppi si usa \( \) nelle
prime e ( ) nelle seconde. Perl ha aggiunto molte feature alle extended
(avendo un motore regex più potente), Python credo ne abbia ereditate
parecchie dal Perl. \b e \B sono aggiunte Perl-style per esempio.

In definitiva ci sono un paio di standard per le core feature, ma molte
estensioni sono specifiche delle diverse implementazioni.

Un paio di link...

http://www.jaredrobinson.com/regex.html
http://en.wikipedia.org/wiki/Regular_expression#Syntax

Ciao!


-- 
Daniele Varrazzo - Develer S.r.l. 
http://www.develer.com


Maggiori informazioni sulla lista Python