Il giorno 16/ott/2013, alle ore 13:45, Daniele Varrazzo <p...@develer.com> ha scritto:
> On 2013-10-16 12:34, Giovanni Porcari wrote: >> Il giorno 16/ott/2013, alle ore 13:27, Marco Giusti >> <marco.giu...@gmail.com> ha scritto: >> >>> On Wed, Oct 16, 2013 at 01:09:26PM +0200, Giovanni Porcari wrote: >>>> Buongiorno a tutti >>>> >>>> >>>> Eseguendo questo codice in python 2.7.5 funziona correttamente >>>> ma in 2.7.2. e 2.7.3 python si impianta e non termina. >>>> >>>> Succede solo a me ? >>> >>> Che si pianti mi sembra normale. Ecco una letturina per la sera[1] >>> oppure il libro di Beri sulle regex. >>> >>> In pratica questa parte "(?P<nome>(?:\w*?\s*?)*?\w*)" ha un tempo di >>> eseguzione che è quadratico. Piuttosto mi stupische che la 2.7.5 >>> funzioni, è cambiato qualcosa nell'implementazione? >>> >>> [1] http://swtch.com/~rsc/regexp/regexp1.html >>> >>> ciao >>> >>>> import re >>>> >>>> t="CURRICULUM Rossi Mazzanti Vien Dal Mare Mario DF/433/43" >>>> r=r"^(?:CURRICULUM\s*)(?P<nome>(?:\w*?\s*?)*?\w*)\s*?(?P<codice>\w{2}/\w{3}/\w{2})\s*$" >>>> R=re.compile(r) >>>> a=re.search(R,t) >>>> print a.groups() >> >> >> Capisco che sia quadratico e mi sta bene ma parliamo di applicare la >> regex su una stringa di 55 caratteri. > > Infatti, penso sia http://bugs.python.org/issue9669 > > v2.7.4 83117:026ee0057e2d > > changeset: 82226:dc8a11c16021 > branch: 2.7 > parent: 82219:c1b3d25882ca > user: Serhiy Storchaka <storch...@gmail.com> > date: Sat Feb 16 21:23:01 2013 +0200 > summary: Issue #9669: Protect re against infinite loops on zero-width > matching in > > v2.7.3 76200:70274d53c1dd > > Direi rilasciato in 2.7.4. > > > -- > Daniele Varrazzo - Develer S.r.l. > http://www.develer.com > Grazie Daniele. Anche tu sei una roccia ;). Avevo cercato sul bugtrack ma evidentemente non sono molto abile in queste ricerche ;) Grazie ! G _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python