Download List

Projeto Descrição

誰でも、どんな目的にでも、どんな環境でも、どんな文字型でも、どんなデータ構造でも使える自由度の高い正規表現エンジンを作ることを目的としています。

面倒なインストールも追加ライブラリも必要ありません。

使い方は、文書を参照してください。

System Requirements

System requirement is not defined

Liberado: 2009-02-06 18:22
mercury-regex 0.4.0.0 (3 files Esconder)

Release Notes

タグ:version_0.4.0.0

ファイル構成について

    • Mercury.Regex-0.4.0.0.zipには、ソースコードとヘルプファイルが入っています。
    • Mercury.Regex-0.4.0.0-src.zipには、コメントを削除したソースコードが入っています。
    • Mercury.Regex-0.4.0.0-HELP.zipには、ヘルプファイルのみが入っています。

文字コードについて

    • 全てのファイルの改行コードはCR+LFです。
    • Mercury.Regex-0.4.0.0.zipのソースファイルの文字コードはShift-JIS、ヘルプファイルの文字コードはUTF-8です。
    • Mercury.Regex-0.4.0.0-src.zipは、ASCIIのみで構成されています。
    • Mercury.Regex-0.4.0.0-HELP.zipの文字コードはUTF-8です。

Changelog

不具合修正

  • Borland C++ Compilerでコンパイルすると、マッチングのオフセットがおかしな値になることがある不具合を修正
  • 後方一致の空文字列パターンがテキストにマッチしない不具合を修正("a*$"が"bbbb"にマッチしない等)
  • 集合内部で文字クラスやエスケープシーケンスを使うと構文エラーが起きることがある不具合を修正
  • 参考資料の"Henry Spencer"の綴りが間違っていたので修正(ゴメンナサイ)

機能追加

  • 最短(lazy)マッチに対応
  • エラーコードからエラーメッセージを生成する関数 mercury::error_message() を追加
  • NFAの状態数の上限を設定できるようにし、状態数が多くなりすぎたら例外をスローするように変更
  • エスケープシーケンス"\C"を追加
  • STL風に、regex_traits::char_type, basic_regex::size_type, basic_regex::value_type, basic_regex::traits_typeを追加

仕様変更

  • "nfa.h"を"_regex/"ディレクトリに移動(汎用性を失い、完全に正規表現用のモデルとなったため)
  • "dfa.h"を削除し、NFA→DFA変換ルーチンを正式にサポートから除外(最短マッチ演算子の導入により、DFAの表現能力を超えたため)
  • "parse_tree.h"と"_regex/parse_node.h"の内容を統合し、"_regex/parse_tree.h"に移動("nfa.h"の移動に伴う変更)
  • 正規表現パターンとテキストによっては、必ずしも最長マッチにならないことがある(例:パターン"aa|a"でテキスト"aa"を検索すると、"a"にマッチする。これは不具合ではなく仕様)

機能改善

  • NUL終端文字列を指定したときのパフォーマンスを、それ以外(長さ指定文字列、コンテナ、終端イテレータ指定)とほぼ同じにした
  • 検索速度が向上(全パターン検索を廃止したため)
  • 構文木の作成時(rule_xxx())に、いちいち例外をキャッチしなくても済むように std::auto_ptr<> に対応
  • BCCとDMCで、文字列として文字配列やポインタを普通に渡せるようにした

その他

  • Digital Mars C++ 8.42nに対応
  • ヘルプファイルに「使用上の注意」を追加