C++ boost正则表达式问题
我要使用一个字符串搜索功能:
例如:已有字符串:1. 美帝国 2.中华人民共和国
输入关键字:美国, 检索出 美帝国
输入关键字:中国,检索出 中华人民共和国
意思就是 检索出 我输入的关键字的每个字在字符串中都出现的 字符串
我的问题是:怎么将输入的 一串关键字 转化成一个正则表达式?然后用于匹配
求 懂boost 正则表达式的指导!谢谢
[解决办法]
#include <iostream>
#include <Windows.h>
#include <boost/regex.hpp>
#include <string>
using namespace std;
using namespace boost;
int main( )
{
char *buf[] = {"This is boost::regex example","123","shi","asdf","siddi"};
std::string in;
std::cin>>in;
boost::regex exampleregex(in);
boost::cmatch result;
int i;
for(i=0;i<sizeof(buf)/sizeof(buf[0]);i++)
{
if( boost::regex_search( buf[i], result, exampleregex ) )
{
std::cout << buf[i] << std::endl;
}
}
Sleep(100000);
return 0;
}
[解决办法]
将输出字符串带入正则表达式调用的入参啊。
wstring si;
wstring so;
si="ABC";
for (int i=0;i<3;i++) so=so+((i==0)?"":"*?")+si[i];