正则表达式是常用的一种方法。比较有名的类库是boost,但是这个类库在重了。所有就像找一些轻量级的类库。
后来发现准标准的库tr1已经很方便了,微软vs2008 sp1 以上版本都支持了。所有就直接用它很方便了。
而且支持unicode编码,还是很方便的。
例子:
#include
#include
#include
int _tmain(int argc, _TCHAR* argv[])
{
std::locale loc("");
std::wcout.imbue(loc);
std::wstring text(_T("我的IP地址是:109.168.0.1."));
std::wstring newIP(_T("127.0.0.1"));
std::wstring regString(_T("(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)"));
// 表达式选项 - 忽略大小写
std::regex_constants::syntax_option_type fl = std::regex_constants::icase;
// 编译一个正则表达式语句
std::wregex regExpress(regString, fl);
// 保存查找的结果
std::wsmatch ms;
// 判断是否全行匹配
if(std::regex_match(text, ms, regExpress))
{
std::wcout
