PCRE忽略了c ++中的匹配

时间:2012-11-06 04:42:15

标签: c++ regex pcre

我正在尝试在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

执行时没有结果。任何提示?提前谢谢。

1 个答案:

答案 0 :(得分:1)

  

re.PartialMatch(text,&amp; a,&amp; b)

如果正则表达式中至少有两个捕获,每个返回参数都有一个捕获,

只能返回true。由于正则表达式(“林”)中没有捕获,因此无论模式是否与文本匹配,re.PartialMatch都保证返回false。