<p dir="ltr">Scusa ma questo come lo gestisci? </p>
<p dir="ltr">Print "/* Ciao"</p>
<p dir="ltr">Print " foo "</p>
<p dir="ltr">Print "*/"</p>
<p dir="ltr">Pace. <br>
R</p>
<div class="gmail_quote">Il 15/mar/2015 02:13 "germano carella" <<a href="mailto:germano.carella@gmail.com">germano.carella@gmail.com</a>> ha scritto:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Ciao,<br>
Grazie, ho risolto così:<br>
pattern = r"/\*([\s\S]*?)\*/"<br>
Così prende tutto il commento in un gruppo e lo posso ignorare.<br>
Ora però mi sono imbattuto in un altro problema, ma questo è solo didattico:<br>
ho un file con una sintassi tipo file ini di windows<br>
[opzioni generali[<br>
opzione1=valore1<br>
opzione2=valore2<br>
[opzioni secondarie]<br>
;qualche riga di commento<br>
secondaria1=3<br>
secondaria2=4<br>
<br>
Ora, il configparser fa il matching del file ini linea per linea e costruisce un dizionario.<br>
Io vorrei fare il matching in una volta sola, con un unico modello, utilizzando re.findall per mettere il risutato in una lista di tuple dove:<br>
[('opzini generali','opzine1=1',opzine2=<u></u>2')...]<br>
<br>
Mi sto scervellando, le ho provate davvero tutte, ma proprio non ci riesco...<br>
<br>
In realtà tutto questo mi serve per fare il parser di una grammatica acontestuale dove le produzioni hanno una loro sintassi particolare, non so se qualcuno di voi le conosce.<br>
<br>
produzione ::= 'terminale' <nonterminale> | 'nonterminale> | VUOTA {codice da eseguire}<br>
<br>
Secondo voi dunque è possibile creare un modello unico per analizzare un file .ini, tanto per cominciare?<br>
<br>
Grazie dell'aiutissimo!<br>
<br>
<br>
Il 12/03/2015 23:46, Alessandro Re ha scritto:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Ciao Germano,<br>
<br>
forse non ho capito bene la domanda, ma non puoi semplicemente<br>
specificare '\n' nel pattern da cercare?<br>
<br>
Ad esempio:<br>
<br>
import re # Ref. [1]<br>
com = '''/* inizio del commento<br>
continua su seconda riga<br>
terza riga e finisce */'''<br>
re.findall('[aeiou]\n', com)<br>
<br>
findall restituisce queste occorrenze:<br>
<br>
['o\n', 'a\n']<br>
<br>
E quindi il carattere \n fa match senza problemi... Forse hai esigenze<br>
un po' più particolari?<br>
<br>
[1]: no, il mio cognome non fa di me un esperto di regex :)<br>
<br>
Ciauz<br>
~Ale<br>
<br>
2015-03-12 17:56 GMT+00:00 germano carella <<a href="mailto:germano.carella@gmail.com" target="_blank">germano.carella@gmail.com</a>>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Salve a tutti,<br>
ho bisogno di fare il match di una porzine di commento che includa anche il<br>
carattere \n.<br>
/*inizio del commento<br>
il commento continua qui.<br>
Anche qui.<br>
*/<br>
So che nelle espressioni regolari il metacarattere '.' serve proprio a<br>
questo, ma se voglio includere anche '\n' devo usare il flag re.DOTALL.<br>
Vorrei evitare di usarlo, anche se si complicano le cose.<br>
Secondo voi si può fare? Io ho cercato in rete, ma non riesco a trovare<br>
niente.<br>
Qualcuno mi dà lumi?<br>
Grazie!<br>
______________________________<u></u>_________________<br>
Python mailing list<br>
<a href="mailto:Python@lists.python.it" target="_blank">Python@lists.python.it</a><br>
<a href="http://lists.python.it/mailman/listinfo/python" target="_blank">http://lists.python.it/<u></u>mailman/listinfo/python</a><br>
</blockquote>
______________________________<u></u>_________________<br>
Python mailing list<br>
<a href="mailto:Python@lists.python.it" target="_blank">Python@lists.python.it</a><br>
<a href="http://lists.python.it/mailman/listinfo/python" target="_blank">http://lists.python.it/<u></u>mailman/listinfo/python</a><br>
</blockquote>
<br>
______________________________<u></u>_________________<br>
Python mailing list<br>
<a href="mailto:Python@lists.python.it" target="_blank">Python@lists.python.it</a><br>
<a href="http://lists.python.it/mailman/listinfo/python" target="_blank">http://lists.python.it/<u></u>mailman/listinfo/python</a><br>
</blockquote></div>