Privoxy

. を改行にマッチさせる方法についてコメントを頂いたので検証してみた。

改行コード以外は同じHTML。

FILTER: dottest
s|A.B.C.D|(replace A.B.C.D)|
s|E.F.G.H|(replace E.F.G.H with s)|s
s|I.+J.+K.+L|(replace I.+J.+K.+L)|
s|M.+N.+O.+P|(replace M.+N.+O.+P with s)|s
s|Q.+?R.+?S.+?T|(replace Q.+?R.+?S.+?T with s)|s

{+filter{dottest}}
tate.undef.jp/dottest.+

わかったこと:

  • s は \x0a を .にマッチさせるが、 . 一文字では \0d\x0a にはマッチしない。perlはドキュメントではなく処理系に合わせた論理改行を意識すると思っていたが、privoxyでは違うようだ。
  • .+ は大喰らいなので .+? を使う
  • g がないと複数回の置換えはしない。