[Date Prev] [Date Index] [Date Next]
[Thread Prev] [Thread Index] [Thread Next]

[xyzzy:03142] xyzzy 正規表現エンジンと POSIX (was Re: バージョンアップのお知らせ)



亀井さん、こんにちは。
花井です。

> | メッセージ楽しみにしてたのにぃ。ヾ(-_-;)ぉぃぉぃ
> 
> どうしても見たければ実行ファイルを「正
> 規表現」でサーチすれば見えますけど(^^;

やってみましたが敗北しました。無念。(;_;)
grep-dialog で "\(.*\)*X" を xyzzy.exe に掛けると一向に返っ
てこないので、記憶領域を乱費する正規表現ではないのでしょう。
表現から領域消費量を想像できないという知識不足が敗因でしょ
うか。(^^;

> | ところで、xyzzy の正規表現のマッチング仕様は POSIX
> | 非互換という認識であってますでしょうか?
> 
> なるべく「らしく」なるように組んだつもりですが、実際の
> ところどうなんでしょう? たとえば、どんなパターンのとき
> でしょうか?

またも「詳説 正規表現」からですけど、

(1) 文字列 :   oneselfsufficient
    正規表現 : one\\(self\\)?\\(selfsufficient\\)?
(1)'正規表現 : one\\(self\\|selfsufficient\\)?
(2) 文字列 :   topological
    正規表現 : \\(to\\|top\\)\\(o\\|polo\\)?\\(gical\\|o?logical\\)

(1) (1)' は、共に POSIX と同じ結果になります。
ですが (2) では POSIX と異なり、それぞれの括弧には
 1: to
 2: polo
 3: gical
が入ります。 (0.0.0.96 でも同様です。)

POSIX の最長最左マッチであれば、複数あるマッチパターンの
のなかから、
 1. \\(to\\|top\\) は、top の方が長いから、こっちを採用
 2. \\(o\\|polo\\)? は、既に p を取られたので o を採用
 3. \\(gical\\|o?logical\\) は、残りの logical を採用
していくらしいです。

いまの動作でも、「詳説〜」でいう DFA エンジンであれば
これでいいのではないかというのが、目下第5章を読んでる
最中の私の考えなのですが、どうなのでしょう?
POSIX 準拠を目指すと、遅くなりそうな気がしますし...

P.S.1
  私が動作仕様をこまごま調べるのは、これを一旦把握しちゃ
  えば後が楽になるっていう経験則からなんですが、よく自分
  でも呆れます。(^^;

P.S.2
  個人的には、「最長最左」より「最左最長」と言った方が
  意味的にしっくりときますが、これまでの私にはどっちも
  馴染みがないので、「詳説〜」に合わせてます。
  # 読み違いでなければですが。

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 @客先 (hanai@xxxxxxxxxxxxxxxxxxxx)
 @自宅 (honey@xxxxxxxxx)

  花井 達
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Index Home