Funziona!!! perfetto.
----- Messaggio originale ----- > Da: Daniele Varrazzo <p...@develer.com> > A: Walter Valenti <waltervale...@yahoo.it>; Discussioni generali sul > linguaggio Python <python@lists.python.it> > Cc: > Inviato: Mercoledì 25 Maggio 2011 16:16 > Oggetto: Re: [Python] Espressioni regolari > > On Wed, 25 May 2011 14:57:17 +0100 (BST), Walter Valenti > <waltervale...@yahoo.it> wrote: >> Ho delle stringe, dove i caratteri che non sono le lettere maiuscole e >> minuscole e i numeri, >> vengono sostituiti da "__codice.ascii__" ovvero: >> doppio underscore + codice ascii + doppio underscore. >> >> >> Per decodificarli pensavo di usare le espressioni regolari. >> Qualcosa del tipo >> p=re.compile('__\d\d__|__\d\d\d__') >> il problema è che quando voglio eseguire la "sub", non so come > fare a >> passargli il numero (cod_ascii) >> >> Idee ?? > > La funzione re.sub (o il metodo sub dell'oggetto Pattern) supportano una > funzione come argomento per il "replace": la funzione prende in input > l'oggetto match e deve restituire una stringa che viene sostituita alla > parte matchata:: > > >>> rex = re.compile(r'__(\d+)__') > >>> rex.sub(lambda m: chr(int(m.group(1))), 'un__65__ > pr__79__va') > > > 'unA prOva' > > Comunque, OT, se devi proprio inventarti un formato di codifica, prendi in > considerazione l'uso di un formato standard, tipo il percent encoding, che > è anche supportato dalla stdlib (vedi > http://docs.python.org/library/urllib.html#urllib.quote). > > -- > Daniele Varrazzo - Develer S.r.l. > http://www.develer.com > _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python