どちらの正規表現が早いNo.09077
Iranoan さん 05/03/08 18:57
 
 秀まるおさん今日は、Iranoan です。
 HmJre.dll Ver.1.5x で拡張された正規表現について、興味本位の質問です。
 正規表現に指定で、タグ (番号) による指定
(?\2)(aaa)(bbb)(ccc)
と前/後方 (不) 一致の組み合わせ
(?<=aaa)(bbb)(?=ccc)
ではどちらが早いのでしょう。普段の検索なら、どちらでも良いですが、時間
のかかるマクロを書く場合、知っておいた方が良さそうなので、お聞きします。

[ ]
RE:09077 どちらの正規表現が早いNo.09078
秀まるお さん 05/03/09 12:42
 
 実際にテストしてみないと分かりませんが、たぶん、(?\n)を使った方が速い
です。

[ ]
RE:09078 どちらの正規表現が早いNo.09079
Iranoan さん 05/03/09 13:03
 
 秀まるおさん今日は、Iranoan です。
>  実際にテストしてみないと分かりませんが、たぶん、(?\n)を使った方が速い
> です。
 どうも有り難うございました。
 ##(?\n) の方が遅いと予想していたのですが、違うんだあ〜。

[ ]
RE:09079 どちらの正規表現が早いNo.09080
秀まるお さん 05/03/09 13:14
 
 まぁ、条件によりますが…。

 (?\2)(aaa)(bbb)(ccc)

 の場合だと、aaaについてのマッチングをして、それにマッチしてからbbb,ccc
のマッチングか実行されます。

 (?<=aaa)(bbb)(?=ccc)

 の場合だと、bbb,cccの処理かされてからaaaのマッチングがされます。

 だいたい、確実にヒットすれば高速で、なかなかヒットしない物は遅いです。
aaaとbbbのマッチする確率によって速度はどうにでもなります。固定長の検索と
「.*」のような可変長の検索とでは2桁以上速度も違うし。

 「.*」のようなやつを2つ以上使うと、つまり4桁以上速度が違うってことに
なります。(仮にマッチしなければの速度で言うと)

[ ]
RE:09080 どちらの正規表現が早いNo.09083
Iranoan さん 05/03/09 17:40
 
 秀まるおさん今日は、Iranoan です。
>  まぁ、条件によりますが…。
 詳細な説明有り難うございました。

[ ]