1
我试图在Ubuntu中使用C++和PCRE正则表达式。我安装了几乎所有相关的软件(libpcrepp和类似软件),但我甚至无法匹配最简单的表达式。我的代码,简化:PCRE忽略C++中的匹配
#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
也没有结果执行时。任何提示?提前致谢。
我删除了&B的离开表达: re.PartialMatch(文字,&A) 但它仍然没有工作。谢谢@rici。 – user1801983
您也没有一个捕获组。你读过关于正则表达式的任何文档吗?捕获组是由'('和')'包围的正则表达式的一部分,匹配被“捕获”并返回。既然你没有这些,你所能做的只是找出匹配是否奏效(布尔返回结果)。如果你使用DoMatch,你也可以得到比赛的长度。 (详见pcrecpp.h)。 – rici
由()包围的表达式有诀窍。感谢您的帮助,@rici。 – user1801983