[Python] Espressioni regolari

Walter Valenti waltervalenti a yahoo.it
Mer 25 Maggio 2011 16:32:57 CEST


Funziona!!! perfetto.




----- Messaggio originale -----
> Da: Daniele Varrazzo <piro a develer.com>
> A: Walter Valenti <waltervalenti a yahoo.it>; Discussioni generali sul linguaggio Python <python a 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
> <waltervalenti a 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
>


Maggiori informazioni sulla lista Python