Forums: Developers (Thread #10246)

>改行をまたぐ検索 (2006-02-21 16:28 by Anonymous #20065)

検索パターンが要求する最大行数分のバッファを作り
そこに複数行を連結して検索、の繰り返しでは?
秀丸は複数行の検索をする時そんな感じになってます。
頭の1行を取り除き、末尾に1行を連結するのとか、
(長バッファではリセットは低頻度)
マッチ結果の表示位置に換算が面倒かもしれませんが。

複数行の検索は低頻度なので、低速度でも
かまわないハズ。

Reply to #20065×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

RE: >改行をまたぐ検索 (2006-02-24 14:18 by exeal #20128)

アドバイスありがとうございます。

秀丸のヘルプ読みました。
検索パターンから最大行数が計算できるのですね。
正規表現だと意図した結果が
得られない場合もありますが、
それは今後の課題ということで、
取り敢えず結合する方法で実装してみます。
Reply to #20065

Reply to #20128×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

RE2: >改行をまたぐ検索 (2007-09-05 19:16 by exeal #32029)

超遅レスですが、現在では別の方法を使っています。
改行をまたいだ検索は可能で、正規表現マッチに
行数の限界はありません。

具体的には Iterator パターンでバッファ全体を
1 つの文字列として見せかけることにより、テキストを
いちいちコピーせずに検索できるようになっています。

詳細はソースコードの DocumentCharacterIterator と
TextSearcher を見てください。
Reply to #20065

Reply to #32029×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login