(現在 過去ログ11 を表示中)

HOME HELP 新着記事 トピック表示 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■9941 / inTopicNo.1)  Child Treeの検索でワイルドカードを
  
□投稿者/ Custom -(2004/09/26(Sun) 03:13:10)
    すみませんが、Child Treeの検索でワイルドカードや正規表現みたいな物を
    使用できるように改造したいのですがどうしたらよいでしょうか?
    検索した限りでは過去ログにはないようです。
    また、エスケープ記号も使用できるとなお良いです。

    あと、以前に誰かが書いていたような気がしますが見つからなかったので・・・。
    解決済みの記事のみ検索する機能と解決済みでない記事のみ検索する機能もつけたいです。

引用返信 [メール受信/OFF] 削除キー/
■9949 / inTopicNo.2)  Re[1]: Child Treeの検索でワイルドカードを
□投稿者/ りゅういち -(2004/09/27(Mon) 21:44:16)
http://www.cj-c.com/
    No9941に返信(Customさんの記事)
    > すみませんが、Child Treeの検索でワイルドカードや正規表現みたいな物を
    > 使用できるように改造したいのですがどうしたらよいでしょうか?

    ShiftJISの場合、正規表現だとうまくいかないことがあるので、
    現在は index 関数で検索しています。
    よって、現実的な方法としては内部で EUC にする処理をして、
    正規表現で処理するようにすればいいと思います。

    よって、まず、検索する対象をEUCにします。222行目を
    while ($Line=<DB>) { &jcode'convert(*Line,'euc');
    とします。そのあと、検索後もEUCにします。234行目
    $key_w=~ s/^\"$/\&quot\;/g; &jcode'convert(*key_w,'euc');
    で、最後に index 関数の部分を正規表現にします。
    if(index($Line, $key_w) >= 0){...}
     ↓
    if($Line=~/$key_w/){...}
    あとは入力内容にPerlの正規表現が利用できるはずです。
    ワイルドカードは .*? で利用できますが、* で利用できるようにするには適宜
    $key_w=~ s/\*/.*?/g;
    と置き換えればよいかも。

    > 解決済みの記事のみ検索する機能と解決済みでない記事のみ検索する機能もつけたいです。

    http://www.cj-c.com/sp/cbbs.cgi?mode=al2&namber=8790&no=1&KLOG=7
    なんか、難しいと判断したようです(^^;
引用返信 [メール受信/OFF] 削除キー/
■9955 / inTopicNo.3)  Re[2]: Child Treeの検索でワイルドカードを
□投稿者/ Custom -(2004/09/29(Wed) 00:43:47)
    回答ありがとうございます。

    > ShiftJISの場合、正規表現だとうまくいかないことがあるので、
    > 現在は index 関数で検索しています。
    > よって、現実的な方法としては内部で EUC にする処理をして、
    > 正規表現で処理するようにすればいいと思います。

    > よって、まず、検索する対象をEUCにします。222行目を
    > while ($Line=<DB>) { &jcode'convert(*Line,'euc');
    > とします。そのあと、検索後もEUCにします。234行目
    > $key_w=~ s/^\"$/\&quot\;/g; &jcode'convert(*key_w,'euc');
    > で、最後に index 関数の部分を正規表現にします。
    > if(index($Line, $key_w) >= 0){...}
    >  ↓
    > if($Line=~/$key_w/){...}
    > あとは入力内容にPerlの正規表現が利用できるはずです。
    > ワイルドカードは .*? で利用できますが、* で利用できるようにするには適宜
    > $key_w=~ s/\*/.*?/g;
    > と置き換えればよいかも。

    ワイルドカードとして動いていないような感じです。
    もう少しいろいろ試してみます。

    > http://www.cj-c.com/sp/cbbs.cgi?mode=al2&namber=8790&no=1&KLOG=7
    > なんか、難しいと判断したようです(^^;

    トピック表示の時に「解決済み」と表示できるようにこの解決済みのフラグを調べて
    検索対象にするかどうかを決められないでしょうか?

引用返信 [メール受信/OFF] 削除キー/
■9956 / inTopicNo.4)  Re[3]: Child Treeの検索でワイルドカードを
□投稿者/ Custom -(2004/09/29(Wed) 01:16:09)
    > ワイルドカードとして動いていないような感じです。
    > もう少しいろいろ試してみます。

    すみません。
    出来ていたようです。
    (少し正規表現のキーワード入力を間違えていたようです)
    あと、ハイライト表示をONにするとメッセージの部分にゴミが入ってしまったり
    処理に時間がかかるようです。
    また、オリジナルでもハイライトをONにしているとキーワードに例えば[a]と入力して
    検索するとタグなどの部分まで反応してしまうようです。
    上記の点については注意書きでも書いておくことにします。

引用返信 [メール受信/OFF] 削除キー/
■9957 / inTopicNo.5)  Re[4]: Child Treeの検索でワイルドカードを
□投稿者/ Custom -(2004/09/29(Wed) 01:29:52)
    > あと、ハイライト表示をONにするとメッセージの部分にゴミが入ってしまったり
    > 処理に時間がかかるようです。
    > また、オリジナルでもハイライトをONにしているとキーワードに例えば[a]と入力して
    > 検索するとタグなどの部分まで反応してしまうようです。
    > 上記の点については注意書きでも書いておくことにします。

    言い忘れていました。
    オリジナルの方でも再現しますが一部の正規表現に使用する記号(*?.\+など)を
    キーワードに入れると検索結果が表示されません。
    正規表現に使用するメタ記号でも一部(/-など)は正常に表示できます。
    恐らく検索時に正規表現部分が反応しているのではないかと思われます。
    なお、エスケープした物を入力すれば検索できるようです。(\*\?\.\\\+など)
    この問題は正規表現を使用する改造していた場合は仕方ないですが通常運用では
    問題あるかも知れません。

引用返信 [メール受信/OFF] 削除キー/
■9968 / inTopicNo.6)  Re[5]: Child Treeの検索でワイルドカードを
□投稿者/ りゅういち -(2004/10/03(Sun) 15:48:29)
http://www.cj-c.com/
    2004/10/03(Sun) 15:49:03 編集(管理者)

    No9957に返信(Customさんの記事)
    > オリジナルの方でも再現しますが一部の正規表現に使用する記号(*?.\+など)を
    > キーワードに入れると検索結果が表示されません。
    > 正規表現に使用するメタ記号でも一部(/-など)は正常に表示できます。
    > 恐らく検索時に正規表現部分が反応しているのではないかと思われます。
    > なお、エスケープした物を入力すれば検索できるようです。(\*\?\.\\\+など)

    これは、メタ記号を置き換える処理をしてみてはどうでしょうか?
    $key_w=~ s/(\?|\.|\+|\\)/\($1)/g;
    といった感じで。
引用返信 [メール受信/OFF] 削除キー/
■9975 / inTopicNo.7)  Re[6]: Child Treeの検索でワイルドカードを
□投稿者/ Custom -(2004/10/04(Mon) 01:29:04)
    > これは、メタ記号を置き換える処理をしてみてはどうでしょうか?
    > $key_w=~ s/(\?|\.|\+|\\)/\($1)/g;
    > といった感じで。

    まあ、あまり検索語として入力することは少ない文字だと思いますのでそんなに
    気にする必要は無いと思いますが・・・。(^_^;

解決済み!
引用返信 [メール受信/OFF] 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Pass/

HOME HELP 新着記事 トピック表示 検索 過去ログ

- Child Tree -