[Python] Come fare il match di tutti i caratteri racchiusi tra /* e */?

germano carella germano.carella a gmail.com
Dom 15 Mar 2015 10:00:44 CET


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.carella a gmail.com 
> <mailto:germano.carella a 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.carella a gmail.com <mailto:germano.carella a 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 a lists.python.it <mailto:Python a lists.python.it>
>             http://lists.python.it/mailman/listinfo/python
>
>         _______________________________________________
>         Python mailing list
>         Python a lists.python.it <mailto:Python a lists.python.it>
>         http://lists.python.it/mailman/listinfo/python
>
>
>     _______________________________________________
>     Python mailing list
>     Python a lists.python.it <mailto:Python a lists.python.it>
>     http://lists.python.it/mailman/listinfo/python
>
>
>
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> http://lists.python.it/mailman/listinfo/python

-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20150315/23b2ec7a/attachment.html>


Maggiori informazioni sulla lista Python