首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++ boost正则表达式有关问题

2012-08-08 
C++ boost正则表达式问题我要使用一个字符串搜索功能:例如:已有字符串:1. 美帝国 2.中华人民共和国输入关

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];

热点排行