[Python] Unione espressioni regolari
Marco Beri
marcoberi a gmail.com
Ven 20 Lug 2012 12:29:25 CEST
2012/7/20 Walter Valenti <waltervalenti a yahoo.it>
> Ho una stringa che per essere verificata deve "matchare" due o più pattern
> diversi.
> La proma cosa che i viene in mente è avere diverse reg. expr. e fare la
> verifica con degli AND.
> Es:
> p1=re.compile(pattern1)
> p2=re.compile(pattern2)
> if p1.match(stringa) and p2.match(stringa):
> ##fai quello che devi.
> Mi chiedevo: c'è la possibilità di usare usa sola reg. expr. che sia un
> "and" tra i vari pattern ?
>
L'and non esiste, come esercizio di (non)stile si potrebbe usare il
lookaround:
>>> import re
>>> re.match("(?=.*a)(?=.*b)", "xxxxxxxx")
>>> re.match("(?=.*a)(?=.*b)", "xxxaxxxx")
>>> re.match("(?=.*a)(?=.*b)", "xxxaxbxx")
<_sre.SRE_Match object at 0xb6ebcf00>
>>> re.match("(?=.*a)(?=.*b)", "xxxbxxax")
<_sre.SRE_Match object at 0xb72dd218>
Ma io mi terrei l'and come hai fatto tu (tra l'altro puoi anche
cortocircuitare l'espressione per cui se non trovi la prima non cerchi
nemmeno la seconda).
Ciao.
Marco.
--
http://beri.it/ - Un blog
http://beri.it/i-miei-libri/ - Qualche libro
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20120720/6e089358/attachment.html>
Maggiori informazioni sulla lista
Python