2008-05-10
■[InDesign][regex]InDesignの正規表現エンジン
InDesignの正規表現エンジンは「非決定性有限オートマトン(Nondeterministic Finite Automaton : NFA)」である。
テスト方法は、「詳説 正規表現」(http://www.srekcah.org/~utashiro/docs/regex/)のP176の通り、文字列
=XX==========================================
に対して、正規表現「X(.+)+X」のマッチ時間が長いためNFAと判断した。
実際には終わらないわけではなくて、10秒ほど計算の後に強制的に失敗させているようだ。
さらに、文字列
=XX==========================================X
に対しては、即座にマッチするため、POSIX型ではなく、従来型のNFAであると推測される。
もちろん、公式な文書はないので、想像でしかないのだけど。ハイブリッドなエンジン(GNFA)である可能性もある。
従来型のNFAエンジンが持つ、DFAの機能的な違い(同書、P132)は以下の通り
- 前方参照
- 先読み
- 非欲張り型繰り返しメタキャラクタと選択
用語の違い
InDesign内で使用されているGREPという用語には、どうしても違和感がある。「regex」だと思うんだけど、どうやら英語圏ではテクニカルでない慣用語として「GREP」が使われている模様(素人さん用語?)。いわゆるgrepアプリケーションを指しているわけじゃない。混乱するだけだから、日本語版ではせめて「正規表現」と記すべきだと思う。GoLiveでもDreamweaverでも「正規表現」となっているし、InDesignがわざわざGREPという用語を使う意味が見つからない。
トラックバック - http://d.hatena.ne.jp/seuzo/20080510/1210385613
リンク元
- 61 http://www.seuzo.jp/st/index.html
- 50 http://kstation2.blog10.fc2.com/blog-entry-255.html
- 38 http://kstation2.blog10.fc2.com/
- 11 http://rrrdtpmemo.blogspot.com/
- 9 http://dtpwiki.jp/planet/
- 7 http://awasete.com/show.phtml?u=http://blog.dtpwiki.jp/dtp/
- 7 http://rrrdtpmemo.blogspot.com/2009/06/blog-post_9658.html
- 6 http://www.google.com/search?client=safari&rls=ja-jp&q=InDesign+互換ファイル&ie=UTF-8&oe=UTF-8
- 5 http://www.google.co.jp/search?q=正規表現エンジン&btnG=検索&hl=ja&safe=off&rlz=1B3GGGL_jaJP290JP290&sa=2
- 4 http://awasete.com/show.phtml?u=http://kstation2.blog10.fc2.com/


