Miseria cagnolina!
Forse premettendo un carattere di inizio riga? mi pare \b?
Ci devo pensare!!!
Il 15/03/2015 08:32, Roberto Polli ha scritto:
Scusa ma questo come lo gestisci?
Print "/* Ciao"
Print " foo "
Print "*/"
Pace.
R
Il 15/mar/2015 02:13 "germano carella" <germano.care...@gmail.com
<mailto:germano.care...@gmail.com>> ha scritto:
Ciao,
Grazie, ho risolto così:
pattern = r"/\*([\s\S]*?)\*/"
Così prende tutto il commento in un gruppo e lo posso ignorare.
Ora però mi sono imbattuto in un altro problema, ma questo è solo
didattico:
ho un file con una sintassi tipo file ini di windows
[opzioni generali[
opzione1=valore1
opzione2=valore2
[opzioni secondarie]
;qualche riga di commento
secondaria1=3
secondaria2=4
Ora, il configparser fa il matching del file ini linea per linea e
costruisce un dizionario.
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:
[('opzini generali','opzine1=1',opzine2=2')...]
Mi sto scervellando, le ho provate davvero tutte, ma proprio non
ci riesco...
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.
produzione ::= 'terminale' <nonterminale> | 'nonterminale> | VUOTA
{codice da eseguire}
Secondo voi dunque è possibile creare un modello unico per
analizzare un file .ini, tanto per cominciare?
Grazie dell'aiutissimo!
Il 12/03/2015 23:46, Alessandro Re ha scritto:
Ciao Germano,
forse non ho capito bene la domanda, ma non puoi semplicemente
specificare '\n' nel pattern da cercare?
Ad esempio:
import re # Ref. [1]
com = '''/* inizio del commento
continua su seconda riga
terza riga e finisce */'''
re.findall('[aeiou]\n', com)
findall restituisce queste occorrenze:
['o\n', 'a\n']
E quindi il carattere \n fa match senza problemi... Forse hai
esigenze
un po' più particolari?
[1]: no, il mio cognome non fa di me un esperto di regex :)
Ciauz
~Ale
2015-03-12 17:56 GMT+00:00 germano carella
<germano.care...@gmail.com <mailto:germano.care...@gmail.com>>:
Salve a tutti,
ho bisogno di fare il match di una porzine di commento che
includa anche il
carattere \n.
/*inizio del commento
il commento continua qui.
Anche qui.
*/
So che nelle espressioni regolari il metacarattere '.'
serve proprio a
questo, ma se voglio includere anche '\n' devo usare il
flag re.DOTALL.
Vorrei evitare di usarlo, anche se si complicano le cose.
Secondo voi si può fare? Io ho cercato in rete, ma non
riesco a trovare
niente.
Qualcuno mi dà lumi?
Grazie!
_______________________________________________
Python mailing list
Python@lists.python.it <mailto:Python@lists.python.it>
http://lists.python.it/mailman/listinfo/python
_______________________________________________
Python mailing list
Python@lists.python.it <mailto:Python@lists.python.it>
http://lists.python.it/mailman/listinfo/python
_______________________________________________
Python mailing list
Python@lists.python.it <mailto:Python@lists.python.it>
http://lists.python.it/mailman/listinfo/python
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python