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

而且执行时没有结果。有什么提示吗?提前致谢。

最佳答案



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

07-24 09:45