方法: 正規表現を使用してデータ フィールドを抽出する (C++/CLI)
正規表現を使用して、書式設定された文字列からデータを抽出する方法を次のコード例に示します。次のコード例では、Regex クラスを使用して、電子メール アドレスに対応するパターンを指定します。このパターンには、各電子メール アドレスのユーザー名とホスト名の部分を取得するために使用するフィールド識別子が含まれます。Match クラスを使用すると、実際のパターン一致を実行できます。指定された電子メール アドレスが有効な場合、ユーザー名とホスト名が抽出され、表示されます。
使用例
// Regex_extract.cpp
// compile with: /clr
#using <System.dll>
using namespace System;
using namespace System::Text::RegularExpressions;
int main()
{
array<String^>^ address=
{
"jay@southridgevideo.com",
"barry@adatum.com",
"treyresearch.net",
"karen@proseware.com"
};
Regex^ emailregex = gcnew Regex("(?<user>[^@]+)@(?<host>.+)");
for (int i=0; i<address->Length; i++)
{
Match^ m = emailregex->Match( address[i] );
Console::Write("\n{0,25}", address[i]);
if ( m->Success )
{
Console::Write(" User='{0}'",
m->Groups["user"]->Value);
Console::Write(" Host='{0}'",
m->Groups["host"]->Value);
}
else
Console::Write(" (invalid email address)");
}
Console::WriteLine("");
return 0;
}