質問

次のような 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 を解析するのが難しい理由の例をいくつか挙げていただけますか? なぜだろう。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top