现在用 BOOST 做正则表达式我用的是 boost_1_33_1安装好了
然后做
用一个例子regex expression("^select ([a-zA-Z]*) from ([a-zA-Z]*)"); 进行匹配
直接输入 select asdf from ertwert 没有问题
但是要是输入 wertselect asdf from ertwert 就匹配不成功然后我该了下,用 regex expression("(=(.*))"); 等做模板
还是一样,也就是说,从头开始可以,但是从任意位置匹配的时候就失败有没有人遇到过这样的问题呢?怎么解决呢
我用过 vs.net 的正则,那感觉很溜.
但是 BOOST 的这个怎么感觉那么别扭呢?应该是还没有上路的原因各位大哥指点下啊
然后做
用一个例子regex expression("^select ([a-zA-Z]*) from ([a-zA-Z]*)"); 进行匹配
直接输入 select asdf from ertwert 没有问题
但是要是输入 wertselect asdf from ertwert 就匹配不成功然后我该了下,用 regex expression("(=(.*))"); 等做模板
还是一样,也就是说,从头开始可以,但是从任意位置匹配的时候就失败有没有人遇到过这样的问题呢?怎么解决呢
我用过 vs.net 的正则,那感觉很溜.
但是 BOOST 的这个怎么感觉那么别扭呢?应该是还没有上路的原因各位大哥指点下啊
但是要是输入 wertselect asdf from ertwert 就匹配不成功~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`你说的很正确,^ 符号的意思是开头匹配,所以只有以select开头的才能匹配成功
现在都郁闷死了
具体的代码是: regex expression("select ([a-zA-Z]*) from ([a-zA-Z]*)");
cmatch what;
char c[200];
std::strcpy(c,"select asf from sdfg select sdf from gdfgdfg");
if(regex_match(c, what, expression))
{//匹配后的处理
}
else
{
cout<<"Error Input"<<endl;
}这样执行的结果就是 Error Input
看表现好像是执行了整行匹配
应该是regex_match的参数不对
谁有这样的经验啊标准的正则我会,但是这个怎么就用不了呢?
大家给的示例都是单行全部匹配的内容
也就是说只能匹配一条数据
难道boost的所谓强大就这么点吗?
等待高手指点迷津