首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++ std::regex litteral管道error_escape异常

C++ std::regex litteral管道error_escape异常
EN

Stack Overflow用户
提问于 2016-01-27 22:50:04
回答 1查看 565关注 0票数 1

我遇到了与单个管道字符匹配的小正则表达式的问题。我总是在error_escape代码中得到一个error_escape异常。

在它最基本的形式中,管道上的转义在posix、extended或默认语法模式中不起作用

代码语言:javascript
复制
std::regex("\\|", std::regex_constants::extended);

我已经尝试了所有三个模式与两个反斜杠,只有一个和零。

我甚至尝试使用转义来匹配管道字符的实际值:

代码语言:javascript
复制
\\0x7c or \0x7c

结果是一样的。

我做错什么了?我代码中的所有其他正则表达式,包括几个类似的文字字符转义(+,*等)。

(请不要建议提速)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-28 01:11:08

最早的支持libstdc++的GNU std::regex版本是v4.9.0,所以如果您使用的是libstdc++ v4.8,您将在regex实现中发现很多错误。不幸的是,它是以一个部分且通常无法使用的实现发布的,但现在已经是水落石出了。

(作为记录,这里是v4.8.3文档中的执行情况。尽管这份文件上写着“这个页面描述了主流的GCC SVN中的C++支持,而不是在任何特定的版本中”,但是afaik是当时可用内容的实际记录;然而,唯一的提示是在URL本身。作为新添加的v4.9版的发行说明列表std::regex )。)

我很抱歉地说,我没有使用MinGW,也没有打算使用,所以我没有资格说是否有一个合理的解决办法。显然,std::regex在C++标准库实现(我从未使用过的其他东西)中工作得很好。当然,总有提振作用,但这似乎超出了这个问题的范围:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35049648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档