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(文本, &a, &b)

如果正则表达式中至少有两个捕获,则只能返回 true,每个返回参数一个。由于您的正则表达式(“森林”)中没有捕获,因此无论模式是否与文本匹配,re.PartialMatch 都保证返回 false。

于 2012-11-06T04:49:32.780 回答