我认为这是非常愚蠢的事情,但这并不匹配,我不明白为什么。
我成功编译了所有内容,但它并不匹配。
我已经使用过RE(".*")
,但它也不起作用。
系统是OS X(使用brew
安装pcre。)
std::string s;
if (pcrecpp::RE("h.*o").FullMatch("hello", &s))
{
std::cout << "Successful match " << s << std::endl;
}
答案 0 :(得分:2)
您正在尝试提取一个子模式(在&amp; s中),但没有包含任何括号来捕获该子模式。试试这个(未经测试,注意括号)。
std::string s;
if (pcrecpp::RE("(h.*o)").FullMatch("hello", &s))
{
std::cout << "Successful match " << s << std::endl;
}
http://www.pcre.org/original/doc/html/pcrecpp.html上的文档有一个类似的例子,说明:
示例:失败,因为没有足够的子模式:
!pcrecpp :: RE(“\ w +:\ d +”)。FullMatch(“ruby:1234”,&amp; s);