1正则表达式,案例1(如果使用的boost库是64位的,要把VS设置成支持64位的,这样的化,才可以运行通过)
#include
<boost/regex.hpp>
#include
<locale>
#include
<iostream>
#include
<string>
using
namespace
std;
void
main()
{
//设置语言环境为:English
std::locale::global(std::locale("English"));
string
str =
"chinaen8Glish";
boost::regex
expr("\\w+\\d\\u\\w+");//d代表数字,
//匹配就是1,不匹配就是0
cout <<
boost::regex_match(str,
expr) <<
endl;
cin.get();
//运行结果为:1
}
2.通过正则取出匹配到的每部分
#include
<boost/regex.hpp>
#include
<locale>
#include
<iostream>
#include
<string>
using
namespace
std;
void
main()
{
std::locale::global(std::locale("English"));
string
str =
"chinaen8Glish9abv";
//d代表数字
boost::regex
expr("(\\w+)\\d(\\w+)");
boost::smatch
what;
//按照表达式检索
if (boost::regex_search(str,
what,
expr))
{
cout <<
what[0] <<
endl;
//这里是字符串本身
cout <<
what[1] <<
endl;
//这里截取的字符串的第一部分
cout <<
what[2] <<
endl;
//这里截取的字符串的第二部分
}
else
{
cout <<
"检索失败";
}
cin.get();
}
运行结果:
3.通过正则表达式将正则中的数字编成指定的字符串。
#include
<boost/regex.hpp>
#include
<locale>
#include
<iostream>
#include
<string>
using
namespace
std;
void
main()
{
string
str =
"chinaen8
Glish9abv";
boost::regex
expr("\\d");//d代表数字,
string
kongge =
"______";
std::cout
<< boost::regex_replace(str,
expr,
kongge) <<
endl;
cin.get();
}
运行结果: