[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