0

ブーストと C++ を使い始めたばかりで、空白の一致に関してブーストの正規表現エンジンの動作を理解するのに苦労しています。コードを使用する場合:

boost::regex rx(" ");
cout << regex_search(" ", rx);

スペースに一致するようにすると、すべてが期待どおりに機能し、regex_search は true を返します。ただし、正規表現を「\s」に置き換えてすべての空白文字に一致させようとすると、一致することはなく、次のコードは常に false を出力します。

boost::regex rx("\\s");
cout << regex_search(" ", rx);

ここで何が欠けていますか?

要求に応じて、ここに私の完全なテスト ケースがあります。

#include <boost/regex.hpp>
#include <iostream>

using namespace std;

int main()
{
    boost::regex rx("\\s", boost::regex::icase);
    cout << regex_search(" ", rx);
}
4

1 に答える 1

2

わかりました-私はもともとascend4.org/Binary_installer_for_Boost_on_MinGWのビルド済みライブラリを使用していました。Boost 1.52 をビルドした後、コードは期待どおりに動作します。ブースト ビルド プロセスを短縮しようとすると、2 時間のフラストレーションが発生しました。

于 2012-11-29T08:54:24.180 に答える