hmonig.dll Ver.0.1.8β 1.はじめに  秀丸エディタで、鬼車(Ver.5.9.2)を使用した正規表現検索を行うためのDLLです。  (hmjre.dll互換の正規表現DLL) 2.インストール  秀丸エディタ本体と同じ場所にdllを配置して、設定で正規表現DLLに「hmonig.dll」  を指定してください。 3.正規表現について  鬼車の基本的な正規表現については、鬼車のドキュメントを参照してください。  hmjre.dllの互換性から、"\<"、"\>"は使用可能です。  Unicodeには完全には対応していません。(ある程度は可能)  hmjre.dllとの違いは以下のようになります。  ・あいまい検索は使用できない。  ・現状では、\uxxxxは使用できない。  ・\wは、英数字, "_" および 多バイト文字にマッチします。  ・hmjre.dllと同様の、マクロ用関数も使用できます。   (全ての関数は実装していません。)    BRegIf.dll+bregonig.dll との違いは、以下のようになります。  ・hmong.dll単独で動作する。(鬼車を静的リンク)  ・鬼車の正規表現はデフォルト(ruby)の仕様になっている。  ・BRegIf.dllの独自拡張のうち、"!"(パターンの否定)のみ使用可能。    その他  ・ヒットした扱いにするタグ指定(HmJre.dll独自形式)も使用可能。  ・後方参照(タグ参照)は、\nの形式は、1〜9までが指定可能です。   \k、\k'n'では、10以上も指定可能ですが、秀丸エディタの置換では、   \k、\k'n'は使用できません。 4.その他・免責事項、ライセンス等 ・このプログラムの動作保証はありません。  動作確認を行っていますが、プログラムの実行環境やプログラムの不具合な  どによって、問題が生じる場合があります。  それにより損害が生じても、損害に対する保証は出来かねますので、あらか  じめご了承ください。 ・不具合をなくす意志はありますが、実力が伴っていないので、治らないかも  しれません。 ・hmonig.dll は、正規表現ライブラリとして鬼車を使用しています。  鬼車は、K.Kosako氏の作成です。(Copyright (c) 2002-2007 K.Kosako)  鬼車は BSD ライセンスとなっています。添付ファイルのCOPYINGを参照して  ください。  鬼車に関しては、以下のURLを参照してください。   Kosako http://www.geocities.jp/kosako3/ 5.連絡先  mail:h-tom  url :h-tom's Warehouse (http://homepage3.nifty.com/_htom/) 6.変更履歴 2009/07/12 Ver.0.1.0 ・BRegIf.dll+bregonig.dll相当となったので、  テスト目的で公開。 2009/07/25 Ver.0.1.1 ・ヒットした扱いにするタグ指定が正常に動作  していないバグの修正  通常の検索 :最後のタグが指定できない。  マクロ用関数:指定が有効にならない。 ・バージョン番号が間違っていたので修正。 2009/11/23 ・64bitのみ。JRE2構造体を修正 2009/12/06 Ver.0.1.2 ・正規表現コンパイルに失敗した場合、クラッシュ  するバグの修正 2009/12/25 Ver.0.1.3 ・鬼車で、(a){2}z が、"aaz"にマッチしないバグ  の修正  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=26143  http://twitter.com/nalsh/statuses/6888780175 2010/01/11 Ver.0.1.4 ・鬼車をVer.5.9.2に変更 2010/01/13 Ver.0.1.4.1 ・(x64のみ) 鬼車Ver.5.9.2を更新 x64で、「fail to memory allocation」が出る場合があるので対処 2010/01/14 Ver.0.1.4.2 ・鬼車Ver.5.9.2を更新(x86/x64のソースを統合) 2010/01/30 Ver.0.1.5 ・エラーメッセージ取得時に、クラッシュする場合があるを修正。 2010/02/06 Ver.0.1.6 ・秀丸エディタVer.8対応  マクロ関数のバッファを固定から可変へ変更 2010/07/10 Ver.0.1.7 ・マクロ用関数の修正  GetLastMatchLength、GetLastMatchTagLengthで、文字  列の先頭にマッチした場合、戻り値が-2になってしまう  バグの修正(colder氏からの連絡による。) 2010/07/15 Ver.0.1.8.0 ・鬼車  http://redmine.ruby-lang.org/issues/show/3568 Bug #3568: /(?<=a).*b/ =~ "aab" doesn't match *hmjre.dll互換関数 関数名:FindRegular($RegexpStr, $TargetStr, #StartPos) 機 能:正規表現を使った検索 引 数:RegexpStr :正規表現 TargetStr :対象文字列 StartPos :検索開始位置 戻り値:(数字) 0以上 マッチした位置 -1 マッチしない -2 正規表現のエラー等 関数名:FindRegularNoCaseSense($RegexpStr, $TargetStr, #StartPos) 機 能:正規表現を使った検索(大文字小文字を無視する) 引 数:RegexpStr :正規表現 TargetStr :対象文字列 StartPos :検索開始位置 戻り値:(数字) 0以上 マッチした位置 -1 マッチしない -2 正規表現のエラー等 関数名:ReplaceRegular($RegexpStr, $TargetStr, #StartPos, $ReplaceStr, #Mode) 機 能:正規表現を使った置換 引 数:RegexpStr :正規表現 TargetStr :対象文字列 StartPos :検索開始位置 ReplaceStr:置換文字列 Mode :全置換の場合は1、最初にヒットした箇所のみなら0。 戻り値:(文字) 置換後の文字列 検索に失敗した場合や、正規表現のエラーの場合は、""を返す。 その他:置換文字列には"\1"等の、タグ参照を指定できます。 \nの形式は、nは1〜9 までです。 \k、\k'n'の形式は、nは10以上も指定可能です。 関数名:ReplaceRegularNoCaseSense($RegexpStr, $TargetStr, #StartPos, $ReplaceStr, #Mode) 機 能:正規表現を使った置換(大文字小文字を無視する) 引 数:RegexpStr :正規表現 TargetStr :対象文字列 StartPos :検索開始位置 ReplaceStr:置換文字列 Mode :全置換の場合は1、最初にヒットした箇所のみなら0。 戻り値:(文字) 置換後の文字列 検索に失敗した場合や、正規表現のエラーの場合は、""を返す。 その他:置換文字列には"\1"等の、タグ参照を指定できます。 \nの形式は、nは1〜9 までです。 \k、\k'n'の形式は、nは10以上も指定可能です。 関数名:GetLastMatchLength 機 能:検索でマッチした文字列の長さを返す 引 数:なし 戻り値:(数字)マッチした文字列の長さ 関数名:GetLastMatchTagLength(#tagNum) 機 能:検索で指定されたタグにマッチした文字列の長さを返す 引 数:タグの番号 戻り値:(数字)タグにマッチした文字列の長さ 関数名:GetLastMatchTagPosition(#tagNum) 機 能:検索で指定されたタグにマッチした文字列の先頭位置を返す 引 数:タグの番号 戻り値:(数字)タグにマッチした文字列の先頭位置 関数名:JreGetVersion 機 能:バージョン番号を返す。 引 数:なし 戻り値:(数字)バージョン番号 *hmjre.dll非互換関数 関数名:GetErrorMessage 機 能:エラーメッセージを返す。 引数 :なし 戻り値:エラーメッセージ 関数名:GetDllVersionStr 機 能:バージョン番号と読み込んでいる鬼車のバージョンを返す。 引数 :なし 戻り値:(文字)バージョン情報文字列