namazu-ml(ring)


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

Re: コメント行の考慮



Masayasu Ishikawa <mimasa@xxxxxxxxxxxxx> wrote:

>html.pl の145行目あたりからの処理でコメントも一緒に削除されてるんじゃ
>ないかと。
>
># HTML タグをすべて削除,タグによって空白を入れたり入れなかったりする
>sub erase_html_tags ($) {
>    my ($contents) = @_;
>
>    1 while ($$contents =~ s/<\/?([^<>]*)>/tag_to_space_or_null($1)/ge);
>}

このコードはかなり安易です。

    $$contents =~ s/<!--\s.*?\s-->//gs;
    $$contents =~ s/<\/?([A-Z]\w*)(?:\s+[A-Z]\w*(?:\s*=\s*(?:(["']).*?\2|[\w-.]+))?)*\s*>/tag_to_space_or_null($1)/gsixe;

とするともう少しまともになると思います。きちんと parse すると遅く
なるのでこのくらいで手を打ちましょう。手元の版ではそのようにしてお
きました。

# 2行目の正規表現は comp.lang.perl.misc の 
# <6qf000$8b4$1@xxxxxxxxxxxxxxxxxxxxxx> から貰いました

-- Satoru Takabayashi