On Mon, Jan 25, 2010 at 03:20:32PM +0100, Lorenzo Macchiavelli wrote: > Salve a tutti qualcuno può aiutarmi?? > Dovrei fare un find and replace in py un pò avanzato("" Per ME!!!"") > > del tipo: Quando è presente la stringa di tipo "AB" Devo Sostituire i valori > all'intero tra i " : " e " AB " moltiplicando per 11 > il valore all'interno e sostituire la stringa "AB" CON "RB". > > Il File è formattato in questo modo: > ... > RTS_YAS:10293AB > RTC_YAS:1003AB > RTS_YAS:010003RB > ... > > ESEMPIO: " RTS_YAS:10293AB " diventa "RTS_YAS:113223RB" > > Qualcuno può spiegarmi come fare??? quale ragionamento fareste per risolvere > questo tipo di problema??
usa il modulo 're' ed in particolare guarda re.sub e sappi che il valore da sostituire può essere una funzione che a sua volta riceverà in argomento il match:: """\ RTS_YAS:10293AB RTC_YAS:1003AB RTS_YAS:010003RB """ import re # a scopo didattico mostro sia gruppi con nome che non PATTERN = re.compile('(RTS_YAS:)(?P<num>\d+)AB') def my_sub(m): return "%s%sRB" % (m.group(1), int(m.group('num')) * 11,) for line in __doc__.split(): if PATTERN.match(line): print line, print " ==>", PATTERN.sub(my_sub, line) sandro *:-) -- Sandro Dentella *:-) http://sqlkit.argolinux.org SQLkit home page - PyGTK/python/sqlalchemy _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python