正規表現を使用した HTML 内のコメントのペアの一致
-
09-09-2019 - |
質問
次のような mako テンプレートがあります。
% if staff:
<!-- begin staff -->
...
<!-- end staff -->
% endif
そうすれば、スタッフ変数を True として渡すと、それらのコメントが表示されるはずです。次のような正規表現を使用してこれをテストしようとしています。
re.search('<!-- begin staff -->.*<!-- end staff -->', text)
コメントが HTML 出力に表示されることを確認しましたが、正規表現が一致しません。コメントも入れてみました(<!-- begin staff -->
そして <!-- end staff -->
) re.escape を実行しましたが、まだ運がありません。私の何が間違っているのでしょうか?
それとも、このテストを実行するより良い方法はありますか?
解決
デフォルトの.
によっては改行と一致していません - あなたはre.DOTALL
オプションを追加する必要があります。
re.search('<!-- begin staff -->.*<!-- end staff -->', text, re.DOTALL)
複数のスタッフのセクションを持っている場合、あなたはまた、試合はungreedyしたいかもしれません。
re.search('<!-- begin staff -->.*?<!-- end staff -->', text, re.DOTALL)
他のヒント
次のような HTML パーサーを使用します HTMLパーサー その代わり。見る 正規表現を使用して XML と HTML を解析するのが難しい理由の例をいくつか挙げていただけますか? なぜだろう。
所属していません StackOverflow