我正在尝试在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
执行时没有结果。任何提示?提前谢谢。
答案 0 :(得分:1)
如果正则表达式中至少有两个捕获,每个返回参数都有一个捕获,re.PartialMatch(text,&amp; a,&amp; b)
只能返回true。由于正则表达式(“林”)中没有捕获,因此无论模式是否与文本匹配,re.PartialMatch都保证返回false。