C++Builder XE5からHmJre.dllのReplaceRegularNoCaseSense関数を使う方法です。
先ほどのエントリー「DelphiからHmJre.dllのReplaceRegularNoCaseSense関数を使う」のC++Builder版になります。
/**
* 特定の文字列から特定の正規表現パターンのマッチングをして、
* ヒットした場合はパラメータに従った置換を実行し、
* その置換した結果の文字列を返します。
*/
typedef char* WINAPI(*TReplaceRegularNoCaseSense)(
// 検索したい正規表現文字列
char* pszPattern,
// 検索対象の文字列
char* pszTarget,
// 検索を開始する桁位置
int iStart,
// 検索でヒットした文字列を置換する用の文字列
char* pszReplace,
// 0.最初にヒットした文字を置換、1.ヒットしたすべての文字を置換
int iMode);
void __fastcall TForm1::Button1Click(TObject *Sender) {
HMODULE dll = LoadLibrary(L"HmJre.dll");
TReplaceRegularNoCaseSense ReplaceRegularNoCaseSense =
reinterpret_cast<TReplaceRegularNoCaseSense>(GetProcAddress(dll, "ReplaceRegularNoCaseSense"));
AnsiString s = ReplaceRegularNoCaseSense("([a-z]+)([0-9]+)",
"--abcdefg1234567--", 0, "\\2\\1", 1);
ShowMessage(s);
FreeLibrary(dll);
}