[Python] aiuto espressioni regolari

Valerio Pachera sirio81 a gmail.com
Mar 23 Apr 2013 12:40:44 CEST


Il giorno 23 aprile 2013 12:08, Marco De Paoli <depaolim a gmail.com> ha
scritto:

> print(re.findall(r'file=([^ ,]*)',s))
>

Sembra perfetta.
Ci sono andato vicino con

print(re.findall(r'file=(\S*)',s))

\S fa il match di qualsiasi cosa eccetto un spazio.
L'asterico ripete per n volte, finchè non trova lo spazio bianco.
Così facendo però include anche la parte con la virgola.

Marco, saresti così gentile da spiegarmi la tua espressione regolare?
Correggimi se sbaglio: le quadre dovrebbero servire per fare il match dei
caratteri in essa contenuti, in questo caso 3 caratteri (inizio stringa ^,
o uno spazio, o una virgola).
Invece qua viene interpretato come "Da inizio stringa ^ fino ad uno spazio
o una virgola.
Mentre \S* mi è chiaro: un qualsiasi carattere che non sia spazio ripetuto
n volte, l'asterisco dopo le quadre mi confende.
Se lo tolgo vedo che fa il match solo del primo carattere
['/', '/']
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20130423/cd5c03dd/attachment.html>


Maggiori informazioni sulla lista Python