如何理解boost :: regex的哪个部分无法匹配/搜索

时间:2011-07-12 20:22:13

标签: c++ linux boost-regex

我使用boost::regex来匹配(更好地说boost::regex_search)文本与正则表达式。

这个不匹配,我的正则表达式非常庞大。

你知道库中是否有任何函数告诉我正则表达式的哪一部分无法匹配?

我正在使用LINUX / gcc

     std::string text; // whatever
     boost::regex rgx( "(\\w+) (\\d+) (\\s+)" );
     boost::smatch m;
     if( !boost::regex_search( text, m, rgx ) ){
         // how to know where (\\w+) or (\\d+) or (\\s+) failed?
     }

2 个答案:

答案 0 :(得分:1)

据我所知,库中没有工具,但我使用的是Boost版本1.28.0。

您是否尝试独立执行(\ w +),(\ d +)和(\ s +)?其中至少有一个应该无法匹配。

答案 1 :(得分:0)

尽快抓住kiki。它是测试和玩正则表达式的宝贵工具 如果您使用的是基于debian的发行版,它应该位于基本存储库中。