【发布时间】: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