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+) をそれぞれ独立して実行しようとしましたか? それらの少なくとも 1 つが一致に失敗する必要があります。

于 2011-07-12T21:27:22.927 に答える
0

できるだけ早くキキをつかみます。これは、正規表現をテストおよび操作するための非常に貴重なツールです。
Debian ベースのディストリビューションを使用している場合は、ベース リポジトリにある必要があります。

于 2011-07-12T20:24:06.747 に答える