你如何打印 std::regex ?

Tre*_*key 5 c++ regex printing string cout

你如何打印 a 的字符串表示std::regex

假设我有一组模式,我想打印第一个匹配的模式:

std::vector<std::regex>> patterns = Get();
for (auto pattern: patterns){
  if (std::regex_match("file.txt",pattern)){
    std::cout << "matched on pattern: " << /* ? pattern ? */ << '\n';
  }
}
Run Code Online (Sandbox Code Playgroud)

std::cout不会工作std::regex

似乎没有任何方法可以获取字符串表示。

我们是否希望单独携带一个字符串,或者我在文档中遗漏了什么?

Ben*_*ley 5

似乎没有任何方法可以获取字符串表示。

正确的。甚至没有指定std::regexeven 以您给它的形式保存您的表达式,如果实现决定使用一些更优化的格式,则可能是这种情况。

  • 老鼠。对我来说似乎很不方便,但我想这不是每个人都愿意支付的。我会做一个包装类型... (2认同)