Regex Matching zwischen zwei Saiten?

Es scheint nicht möglich zu sein, alle Kommentare wie im folgenden Beispiel zu extrahieren.

>>> import re
>>> string = '''
... <!-- one 
... -->
... <!-- two -- -- -->
... <!-- three -->
... '''
>>> m = re.findall ( '<!--([^\(-->)]+)-->', string, re.MULTILINE)
>>> m
[' one \n', ' three ']

Block mittwo -- -- wird höchstwahrscheinlich wegen schlechten Regex nicht angepasst. Kann mir bitte jemand zeigen, wie ich Übereinstimmungen zwischen zwei Zeichenfolgen extrahieren kann?

Hallo, ich habe getestet, was ihr in den Kommentaren vorgeschlagen habt. Hier ist eine funktionierende Lösung mit einem kleinen Upgrade.

>>> m = re.findall ( '<!--(.*?)-->', string, re.MULTILINE)
>>> m
[' two -- -- ', ' three ']
>>> m = re.findall ( '<!--(.*\n?)-->', string, re.MULTILINE)
>>> m
[' one \n', ' two -- -- ', ' three ']

Vielen Dank!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage