bool match=0;
string pattern, domain="sub1.example.org";
while(res->next())
{
pattern.append("(.+\\.)?");
pattern.append(res->getString(1));
std::regex RE(pattern);
cout << pattern << "-" << domain << endl;
pattern.clear();
if((match=regex_match(domain, RE)))
break;
}
上面的那个不匹配,另外输出是这样的:
(.+\.)?example.org-sub1.example.org
(.+\.)?example.orgg-sub1.example.org
(.+\.)?sdasd.com-sub1.example.org
我想我太困了什么,有人可以帮帮我吗?
编辑: gcc 4.6.3
答案 0 :(得分:2)
GNU libstdc ++的<regex>
实现不完整。请参阅the manual。
答案 1 :(得分:1)
看起来像是实施中的错误。我得到相同的结果,但如果我删除'?'从它匹配的正则表达式。我想不出任何理由说“0或1”而不是“其中1”会在后者成功时失败。