如何:使用正则表达式重新排列数据 (C++/CLI)
下面的代码示例演示如何使用 .NET Framework 正则表达式支持重新排列数据或重新设置数据格式。 下面的代码示例使用 Regex 和 Match 类从字符串中提取第一个名称和最后一个名称,然后按相反顺序显示这些名称元素。
Regex 类用于构造描述当前数据格式的正则表达式。 假设这两个名称以逗号分隔,并且可以在逗号周围使用任意数量的空白。 然后使用 Match 方法来分析每个字符串。 如果成功,将从 Match 对象中检索第一个和最后一个名称并进行显示。
示例
// regex_reorder.cpp
// compile with: /clr
#using <System.dll>
using namespace System;
using namespace Text::RegularExpressions;
int main()
{
array<String^>^ name =
{
"Abolrous, Sam",
"Berg,Matt",
"Berry , Jo",
"www.contoso.com"
};
Regex^ reg = gcnew Regex("(?<last>\\w*)\\s*,\\s*(?<first>\\w*)");
for ( int i=0; i < name->Length; i++ )
{
Console::Write( "{0,-20}", name[i] );
Match^ m = reg->Match( name[i] );
if ( m->Success )
{
String^ first = m->Groups["first"]->Value;
String^ last = m->Groups["last"]->Value;
Console::WriteLine("{0} {1}", first, last);
}
else
Console::WriteLine("(invalid)");
}
return 0;
}