Hatena::ブログ(Diary)

名もないテクノ手 このページをアンテナに追加 RSSフィード Twitter

EPUB版『InDesign者のための正規表現入門』

InDesignのTips一覧

2008-05-10

[][]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