[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