Non riesco a trovare un modo per estrarre tutti i commenti come nell'esempio seguente.Corrispondenza regex tra due stringhe?
>>> import re
>>> string = '''
... <!-- one
... -->
... <!-- two -- -- -->
... <!-- three -->
... '''
>>> m = re.findall ('<!--([^\(-->)]+)-->', string, re.MULTILINE)
>>> m
[' one \n', ' three ']
blocco con two -- --
non corrisponde molto probabilmente a causa del cattivo regex. Qualcuno può per favore indicarmi nella giusta direzione come estrarre le corrispondenze tra due stringhe.
Ciao Ho provato quello che avete suggerito nei commenti .... ecco una soluzione funzionante con un piccolo aggiornamento.
>>> m = re.findall ('<!--(.*?)-->', string, re.MULTILINE)
>>> m
[' two -- -- ', ' three ']
>>> m = re.findall ('<!--(.*\n?)-->', string, re.MULTILINE)
>>> m
[' one \n', ' two -- -- ', ' three ']
grazie!
qualsiasi cosa tra [] è un singolo carattere, quindi (->) non cercherà che il raggruppamento faccia parte del problema ... –
're.findall ('', stringa, re.DALEALL)' fare. Non hai bisogno di '^ \ (->)' qui, perché il punto interrogativo lo rende non-goloso. – BrtH
Sembra che tu stia cercando solo le parole? Se è così, cosa c'è di sbagliato in 'm = re.findall ('[\ w] +', string, re.MULTILINE)'? Inoltre, string è davvero un brutto nome per una stringa, um. – Ben