【问题标题】:C++11 regex_error - why? (code: 2)C++11 regex_error - 为什么? (代码:2)
【发布时间】:2013-07-27 06:37:50
【问题描述】:

为什么这个 C++11 代码会抛出 regex_error?

string s{R"((http)(s)?(:\/\/)(www\.)?([^ ]*))"};
regex r{s}; // throws regex_error

我一直在互联网上寻找正确的转义,我尝试了多种组合,但我认为我的转义是正确的。我做错了什么?

【问题讨论】:

  • 如果你使用 GNU libstdc++,<regex> 坏了,上次我检查过。
  • @BenjaminLindley:我是,使用 GCC 4.8.1。 - 那么,除了libc++,Boost,是不是唯一的另一种可能性?
  • 我只会使用 Boost。
  • 如果您正在为 URL 寻找一个好的正则表达式,请查看this out:
  • PCRE++ 也不错。

标签: c++ regex boost c++11 escaping


【解决方案1】:

GCC 显然还没有真正支持正则表达式。
查看状态页面:http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html

根据 cmets 的建议,您现在最好使用 boost。带有 libc++ 的 Clang 也已经有了正则表达式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-18
    • 2020-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-02
    • 2021-06-27
    相关资源
    最近更新 更多