DelphiからHmJre.dllのReplaceRegularNoCaseSense関数を使う

Delphi XE5からHmJre.dllのReplaceRegularNoCaseSense関数を使う方法です。

ReplaceRegularNoCaseSense関数の定義は次のようになります。

/// <summary>
///   特定の文字列から特定の正規表現パターンのマッチングをして、ヒットした場合はパラメータに従った置換を実行し、その置換した結果の文字列を返します。 
/// </summary>
/// <param name="pszPattern">
///   検索したい正規表現文字列
/// </param>
/// <param name="pszTarget">
///   検索対象の文字列
/// </param>
/// <param name="iStart">
///   検索を開始する桁位置
/// </param>
/// <param name="pszReplace">
///   検索でヒットした文字列を置換する用の文字列
/// </param>
/// <param name="iMode">
///   0.最初にヒットした文字を置換、1.ヒットしたすべての文字を置換
/// </param>
/// <returns>
///   置換した結果の文字列
/// </returns>
function ReplaceRegularNoCaseSense(pszPattern: PAnsiChar; pszTarget: PAnsiChar;
  iStart: Integer; pszReplace: PAnsiChar; iMode: Integer): PAnsiChar; stdcall;
  external 'HMJRE.DLL' name 'ReplaceRegularNoCaseSense';

ReplaceRegularNoCaseSense関数の使用例です。

procedure TForm1.Button1Click(Sender: TObject);
var
  S: AnsiString;
begin
  S := ReplaceRegularNoCaseSense(
    PAnsiChar('([a-z]+)([0-9]+)'), // 検索したい正規表現文字列
    PAnsiChar('--abcdefg1234567--'), // 検索対象の文字列
    0, // 検索を開始する桁位置
    '\2\1', // 検索でヒットした文字列を置換する用の文字列
    1 // 0.最初にヒットした文字を置換、1.ヒットしたすべての文字を置換
    );
  ShowMessage(S);
end;

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください