读书人

boost:regex的有关问题

发布时间: 2012-03-19 22:03:05 作者: rapoo

boost::regex的问题
如下代码 :
string sRegStrUrl = "Referer: [0-9|a-z|A-Z|:|/|.]{0,}(|/r|\n){1}"; //用于匹配URL
boost::regex expressionUrl(sRegStrUrl,boost::regex::perl);

代码在win32下是没有问题的,但是转到linux下编译没问题,但是运行时抛出以下异常:

terminate called after throwing an instance of 'boost::regex_error'
what(): Empty expression
14:24:40 410620 106
Program received signal SIGABRT, Aborted.
0x00421402 in __kernel_vsyscall ()

请问这是什么原因?如何解决?

[解决办法]
boost版本?貌似空表达式要比较高的版本才支持。
/r算什么?
(|/r|\n){1},空表达式出现一次,这又有什么意义?
[]里有|又有什么意义?
呃,你写的正则让我完全看不懂。
你还是认真看看boost regex的文档或者其它regex的入门教材吧。
[解决办法]

探讨
引用:
楼主使用std::regex试试


regex在std空间是没有定义的。如果改成你那样,编译关就过不去。

读书人网 >C++

热点推荐