2

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?
     }
4

2 回答 2

1

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

您是否尝试过彼此独立地执行 (\w+)、(\d+) 和 (\s+)?其中至少有一个应该匹配失败。

于 2011-07-12T21:27:22.927 回答
0

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

于 2011-07-12T20:24:06.747 回答