Namazu-devel-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: filter/macbinary.pl試用結果



寺西です。

"Sakuma,Hiroaki" wrote:
> 
> こちらはコメントの削除側で対応してはどうでしょうか?
> 多分,HTMLの規格に沿って,
> 
> <!-- (--以外) -->
> 
> を削除しているのだと思いますが,これに加え,
> 
> <!\[[^>]*\]>
> 
> も消します.

コメントを削除する際に <![xxxx]>タグを削除するのは大丈夫そうです。

(<![xxxx>xxxx]> はマッチしませんが、さすがに Microsoft も考えている
ようで比較には、">" は使っていないようです。例えば <!--[if gte mso 9]>
のようになっているので、この正規表現で大丈夫そうです。)

# まぁ、コメントのところで削除する必要はないですが。

> あるいは,一発で書くとなると,
> 
>     # remove all elements
>     $$contref =~ s!</?(([A-Z]\w*)[\:\[]*\w*(?:\s+[A-Z]\w*(?:\s*=\s*(?:(["']).
> *?\2|[\w\-.]+))?)*|(!)\[[^>]*\])\s*>!element_space($2 . $6)!gsixe;
> 
> で一応削除されます.
> <![xxx]>

<![xxx> とか <xxxx]> とかにマッチしません?
マッチしてまずいことがあるということもないでしょうが、気持ち悪いです。
<![xxx]> というタグを削除したいです。

ゆえに
> remove_html_elements の一回のマッチングで削除するのは(正規表現を書く
> のが)大変そうなので、Office マークアップ用の正規表現を書いて、
> 2段階で削除するのが簡単じゃないでようか?
という話をしています。もちろん、一回で書けるとは思いますが、可読性も
低くくなりますし、Officeマークアップも増えることが考えられますので、
サブルーチンを分けて別処理した方が、今後の修正が楽になるような
気がします。(パフォーマンスが大幅に低下しなければ)

現状でも結構複雑な正規表現ですので、
> ":"や"["がタグの中に入っているのでマッチしないのかなと思うのですが
> うかつに触るとエンバグしそうな正規表現なのでどなたかアドバイスを。
という心配が避けれるかなと思います。

特に大きなメリットがないなら、一発で書かなくても良いのでは?
# perl が好きな方には、ええーって話かもしれないけど。
-- 
=====================================================================
寺西 忠勝(TADAMASA TERANISHI)  yw3t-trns@xxxxxxxxxxxxxxx
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint =  474E 4D93 8E97 11F6 662D  8A42 17F5 52F4 10E7 D14E