<div class="gmail_quote">2012/7/20 Walter Valenti <span dir="ltr"><<a href="mailto:waltervalenti@yahoo.it" target="_blank">waltervalenti@yahoo.it</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Ho una stringa che per essere verificata deve "matchare" due o più pattern diversi.<br>
La proma cosa che i viene in mente è avere diverse reg. expr. e fare la verifica con degli AND.<br>Es:<br>
p1=re.compile(pattern1)<br>
p2=re.compile(pattern2)<br>if p1.match(stringa) and p2.match(stringa):<br>
  ##fai quello che devi.<br>

 Mi chiedevo: c'è la possibilità di usare usa sola reg. expr. che sia un "and" tra i vari pattern ?<br></blockquote><div><br></div><div>L'and non esiste, come esercizio di (non)stile si potrebbe usare il lookaround:</div>

<div><div>>>> import re</div><div>>>> re.match("(?=.*a)(?=.*b)", "xxxxxxxx")</div><div>>>> re.match("(?=.*a)(?=.*b)", "xxxaxxxx")</div><div>>>> re.match("(?=.*a)(?=.*b)", "xxxaxbxx")</div>

<div><_sre.SRE_Match object at 0xb6ebcf00></div><div>>>> re.match("(?=.*a)(?=.*b)", "xxxbxxax")</div><div><_sre.SRE_Match object at 0xb72dd218></div><div><br></div></div><div>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).</div>

<div><br></div><div>Ciao.<br>Marco.</div><div><br></div></div>-- <br><div><div><div><div><a href="http://beri.it/" target="_blank">http://beri.it/</a> - Un blog</div><div><a href="http://beri.it/i-miei-libri/" target="_blank">http://beri.it/i-miei-libri/</a> - Qualche libro</div>

<div><br></div></div></div></div><br>