次の例のようにすべてのコメントを抽出する方法が見つからないようです。2つの文字列の間の正規表現マッチング?
>>> import re
>>> string = '''
... <!-- one
... -->
... <!-- two -- -- -->
... <!-- three -->
... '''
>>> m = re.findall ('<!--([^\(-->)]+)-->', string, re.MULTILINE)
>>> m
[' one \n', ' three ']
ブロックtwo -- --
は、正規表現が正しくないために最もよくマッチしません。誰かが正しい方向に2つの文字列の間の一致を抽出する方法を教えてくださいできますか?
こんにちは私はあなたの意見で示唆したものをテストしました....ここではほとんどアップグレードしていない作業ソリューションです。
>>> m = re.findall ('<!--(.*?)-->', string, re.MULTILINE)
>>> m
[' two -- -- ', ' three ']
>>> m = re.findall ('<!--(.*\n?)-->', string, re.MULTILINE)
>>> m
[' one \n', ' two -- -- ', ' three ']
ありがとうございました!
[]の間にあるものはすべて1文字なので、そのグループは問題の一部であるとは見なされません... –
're.findall( ''、string、re.DOTALL)' should行う。疑問符は貪欲でないので、 '^ \( - >)'は必要ありません。 – BrtH
あなたはちょうど言葉を探しているようですね?もしそうなら、 'm = re.findall( '[\ w] +'、string、re.MULTILINE)'の何が問題なのですか?また、stringは本当に悪い名前の文字列です。 – Ben