Практическое руководство. Использование регулярных выражений для извлечения полей данных (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;
}