在VS2008套装中的VC++环境下使用正则表达式
2012-03-13 11:21
381 查看
这里不对正则表达式的具体形式和具体运用进行讨论,只是提供一个可行的方法。在网上找了很多帖子都说VS2008所带的VC++中去掉了atlrx.h,个人觉得下载boost库是件麻烦的事,感觉一个高级编程环境不应该这样。结果在MSDN上找到了答案,其实可以用Regex和Match类实现。
言归正传,以下是MSDN中的例子:
// 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;
}
注意注释中的compile with: /clr,在编译时记得加上这个参数。
言归正传,以下是MSDN中的例子:
// 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;
}
注意注释中的compile with: /clr,在编译时记得加上这个参数。
相关文章推荐
- 在VS2008套装中的VC++环境下使用正则表达式
- VC中使用正则表达式
- VC6微软正则表达式greta使用案例
- 在VC中使用正则表达式(boost库)
- 在VS2008中使用正则表达式进行查找和替换
- 正则表达式的问题(php环境中使用)
- VC中使用正则表达式
- VS2008使用boost的正则表达库regex的环境配置
- JAVA环境使用正则表达式处理字符串
- VC正则表达式的使用
- VC调用vbscript.dll使用其正则表达式库
- VC正则表达式的使用
- 使用 VC 编译 PCRE (PCRE 是一套正则表达式的开源库)
- vs2008 快速替换 使用正则表达式
- vs2008中使用正则表达式实例
- 在VS2008中使用正则表达式进行查找和替换
- VC中Boost正则表达式使用
- 在VS2008中使用正则表达式进行查找和替换
- VC正则表达式的使用
- VC2010使用正则表达式