/*/の検索文字列を強調No.03929
三月 さん 09/09/23 19:10
 
/*/
に対して「(/\*|\*/)」を正規表現で検索すると
「/*」 しか強調されません。

そういうものだといえば、そうなんでしょうが、下候補とかで
移動すれば「/*」→「*/」と切り替わるので違和感を感じます。


[ ]
RE:03929 /*/の検索文字列を強調No.03930
Iranoan さん 09/09/23 19:32
 
 三月さん今日は、Iranoan です。
> /*/
> に対して「(/\*|\*/)」を正規表現で検索すると
> 「/*」 しか強調されません。
 これって、
・後の「/」も強調して欲しいという要望?
・不具合がかどうかの確認?
のどちらなのでしょうか? 後者だとすると、ヘルプに
>  「正規表現」では、ヒットした文字列の途中から重なってヒットするよう
> な場合は強調されません。
>  (例:テキスト「aaa」に対して「aa」で検索する場合、最初のaaしか強調
> されない)
とあるように仕様です。「ファイルタイプ別の設定」の「強調表示」や「複数
行コメント」の「ユーザ定義」も同じですね。

> 下候補とかで
> 移動すれば「/*」→「*/」と切り替わるので違和感を感じます。
 おそらく
・強調は、単純にファイル先頭から順にスキャンするだけで、強調した位置に
  対してスキャンしなおさない
・「上/下候補」は現在のカーソル位置から行う
の違いでしょう。これは、おそらく、技術的な問題なのではなく、前者の仕様
を変えて、最スキャンすると、速度が遅くなるのだと思います。特に .+ を
使っている時など。
 ##こういった説明がどこかにあったと思うのですが、見つける気力がありま
せん(^^;。

[ ]
RE:03929 /*/の検索文字列を強調No.03931
アルビレオ さん 09/09/23 19:48
 
ユーザーのアルビレオです。

>/*/
>に対して「(/\*|\*/)」を正規表現で検索すると
>「/*」 しか強調されません。
>
>そういうものだといえば、そうなんでしょうが、下候補とかで
>移動すれば「/*」→「*/」と切り替わるので違和感を感じます。

たとえば (abc|bcd)で abcdbcd を検索するとわかりやすいですが、「下候補」
だとカーソル位置の次の文字から順に検索しますが、強調表示は先にヒットした
文字列の末尾から次を探すという仕様のようなので、まったく同じ結果は期待で
きないでしょう。
検索位置を一文字ずつずらす方法だと無駄に負荷が大きくなる場合がある(強調
表示済みの箇所でも何度もスキャンしなければいけない)ので、高速化のための
工夫だと思います。
例:1000文字以上連続したアルファベットを含むテキストに対して [a-z]+ で検索

/*/ も強調表示したい場合は (/\*|\*/|/\*/) とすることで対処可能ですね。

[ ]
RE:03930 /*/の検索文字列を強調No.03932
三月 さん 09/09/23 21:08
 
>のどちらなのでしょうか? 後者だとすると、ヘルプに
>>  「正規表現」では、ヒットした文字列の途中から重なってヒットするよう
>> な場合は強調されません。
>>  (例:テキスト「aaa」に対して「aa」で検索する場合、最初のaaしか強調
>> されない)
>とあるように仕様です。「ファイルタイプ別の設定」の「強調表示」や「複数
>行コメント」の「ユーザ定義」も同じですね。
>
ヘルプにあるのに気が付いてませんでした。
そういうもの(仕様)と言うことで納得です。


[ ]