Je n'arrive pas à trouver un moyen d'extraire tous les commentaires comme dans l'exemple suivant.Regex correspondant entre deux chaînes?
>>> import re
>>> string = '''
... <!-- one
... -->
... <!-- two -- -- -->
... <!-- three -->
... '''
>>> m = re.findall ('<!--([^\(-->)]+)-->', string, re.MULTILINE)
>>> m
[' one \n', ' three ']
bloc avec two -- --
ne correspond pas très probablement à cause du mauvais regex. Quelqu'un peut-il s'il vous plaît me diriger dans la bonne direction comment extraire les correspondances entre deux chaînes. Salut, j'ai testé ce que vous avez suggéré dans les commentaires .... voici une solution de travail avec peu de mise à jour.
>>> m = re.findall ('<!--(.*?)-->', string, re.MULTILINE)
>>> m
[' two -- -- ', ' three ']
>>> m = re.findall ('<!--(.*\n?)-->', string, re.MULTILINE)
>>> m
[' one \n', ' two -- -- ', ' three ']
merci!
Tout ce qui se trouve entre [] est un seul caractère, donc (->) ne cherchera pas ce regroupement fait partie du problème ... –
're.findall ('', string, re.DOTALL)' devrait faire. Vous n'avez pas besoin de '^ \ (->)' ici, parce que le point d'interrogation le rend non-gourmand. – BrtH
Vous avez l'air de ne chercher que les mots? Si oui, qu'est-ce qui ne va pas avec 'm = re.findall ('[\ w] +', string, re.MULTILINE)'? De plus, string est un mauvais nom pour une chaîne, um. – Ben