1

UbuntuでC++およびPCRE正規表現を使用しようとしています。関連するほとんどすべてのソフトウェア(libpcreppなど)をインストールしましたが、最も単純な式にさえ一致させることができません。私のコード、簡略化:

#include <iostream>
#include <string>
#include <pcrecpp.h>

using namespace std;

int main() {

   std::string text, a, b;

   text = "Flowers in the forest are darker than in the prairie";

   pcrecpp::RE re("forest");

   if( re.PartialMatch(text, &a, &b) ) {
      std::cout << "match: " << a << b << "\n";
   }

}

コンパイル中にエラーはありません:

g++ t2.cpp -lpcrecpp -o t2

そして、実行時に結果はありません。ヒントはありますか?前もって感謝します。

4

1 に答える 1

1

re.PartialMatch(text、&a、&b)

正規表現に少なくとも2つのキャプチャがあり、それぞれの戻り引数に1つずつある場合にのみ、trueを返すことができます。正規表現(「フォレスト」)にはキャプチャがないため、パターンがテキストと一致するかどうかに関係なく、re.PartialMatchはfalseを返すことが保証されています。

于 2012-11-06T04:49:32.780 に答える