正規表現で n 回以上の繰り返しNo.12159
Iranoan さん 06/01/30 01:51
 
 秀まるおさん今日は、Iranoan です。
 http://www.maruo.co.jp/hidesoft/4/x05027_.html を読んで、興味本位で
試していたら、「(...*)\1」や「(.{2})\1」は大丈夫ですが、最初の例を他の
書き方でやってみようと、「(.{2,})\1」を試してみましたが、ヒットしませ
んでした。これは仕様? それともバグ?
 こちらの環境は、秀丸エディタ Ver.5.13β5+HmJre.dll Ver.1.74 です。

[ ]
RE:12159 正規表現で n 回以上の繰り返しNo.12160
秀まるお さん 06/01/30 12:40
 
 こちらでテストした限りはうまくヒットするみたいです。

 (.{2,})\1

 って条件で検索して、

 あいあい
 あいうあいう
 あいうえあいうえ

 とかにヒットします。

 具体的に、ヒットするはずがヒットしない文字列の例を教えて欲しいです。

[ ]
RE:12160 正規表現で n 回以上の繰り返しNo.12162
Iranoan さん 06/01/30 16:39
 
 秀まるおさん今日は、Iranoan です。
>  あいあい
>  あいうあいう
>  あいうえあいうえ
>
>  とかにヒットします。
>
>  具体的に、ヒットするはずがヒットしない文字列の例を教えて欲しいです。
 私の環境だと、上記の何れもヒットしません??? 秀丸メール Ver.4.61β4
でも同様です。

[ ]
RE:12162 正規表現で n 回以上の繰り返しNo.12163
秀まるお さん 06/01/30 16:47
 
 すみません。いろいろテストしたら、行頭から「あいうあいう」となってるよ
うなケースではヒットしますが、行の途中にある「あいうあいう」にはヒットし
ませんでした。

 なぜだか分かりませんけど。

 ということで調べてみます。

[ ]
RE:12163 正規表現で n 回以上の繰り返しNo.12164
秀まるお さん 06/01/30 17:13
 
 ってことで調べてみたら、これはバグと言うしかなさそうです。

 (pattern-A)patternB のような形のマッチングで、pattern-Aが任意回数ヒッ
トするようなケースで、patternBへのマッチングを同じ箇所について何回も繰り
返すことが無いようにする高速化の処理があるんですが、その処理は、patternB
が固定のパターンであることを前提としています。patternBの中にタグ付き正規
表現が含まれていると、結果としてpatternBがpatternAのマッチング具合で変化
することになって、そういう高速化の処理のせいでうまく動作しないようです。

 (っと詳しく書いても仕方ないですが)

 ということで、とにかく修正させていただきます。

[ ]
RE:12163 正規表現で n 回以上の繰り返しNo.12165
アルビレオ さん 06/01/30 17:18
 
アルビレオです。

いくつかテストしてみると条件が絞れました。
検索を開始するカーソル位置が「あいうあいう」よりも1文字左側にあるときだ
けヒットするようです。

また、検索コマンドを実行してもすでにある文字列に対しては「検索文字列の強
調」が機能しませんが、検索文字列を設定した状態で「abcabc...」と文字入力
をしていくと強調されます。
ちょっと不思議な動作ですね。

[ ]
RE:12163 正規表現で n 回以上の繰り返しNo.12166
Iranoan さん 06/01/30 18:31
 
 秀まるおさん今日は、Iranoan です。
> 行の途中にある「あいうあいう」にはヒットし
> ませんでした。
>
>  なぜだか分かりませんけど。
>
>  ということで調べてみます。
 宜しくお願いします。

[ ]