C ++ 11 RegEx匹配 - 我无法让它正常工作

时间:2012-08-27 20:00:29

标签: c++ regex c++11

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

2 个答案:

答案 0 :(得分:2)

GNU libstdc ++的<regex>实现不完整。请参阅the manual

答案 1 :(得分:1)

看起来像是实施中的错误。我得到相同的结果,但如果我删除'?'从它匹配的正则表达式。我想不出任何理由说“0或1”而不是“其中1”会在后者成功时失败。