#include <iostream>
#include <string>
#include <boost/regex.hpp>
using namespace std;
/*
标题:测试boost::regex的常用功能
最后更新日期:2015-03-02
环境:boost 1.57、VS2013Update4
注意下面两个方法的区别:
regex_match匹配整个源。
regex_search匹配源的一部份。
*/
int main(int argc, char* argv[])
{
{
wcout << "示例:匹配整个源,Expression中只有一个capture" << endl;
std::wstring hello(L"<img src=\"http://localhost:8080/a.jpg\">");
//<(?:img|IMG)[\s\S]* src="{0,2}(\S+[^"/ ])"{0,2}[\s\S]*/{0,1}>
boost::wregex rex(L"<(?:img|IMG)[\\s\\S]*src=\"{0, 2}(\\S+[^\"/ ])\"{0, 2}[\\s\\S]*/{0, 1}>");如果std::string类型替换为boost::regex
boost::wsmatch what;//如果std::string类型替换为boost::smatch
if (regex_match(hello, what, rex))
{
wcout << what[0] << endl; // whole match
wcout << what[1] << endl; // capture
}
/*
打印结
boost::regex示例代码
最新推荐文章于 2015-04-03 16:59:00 发布
当C++编译器支持C++11时,推荐使用内置的正则表达式库,因为boost的正则表达式实现可能存在一些问题。
摘要由CSDN通过智能技术生成