c++ - 在 C++11 中使用正则表达式回顾

标签 c++ regex c++11

为什么我不能在 C++11 中使用回顾?前瞻工作正常。

std::regex e("(?<=a)b");

这将抛出以下异常:

The expression contained mismatched ( and ).

这不会抛出任何异常:

std::regex e("a(?=b)");

我错过了什么?

最佳答案

C++11 <regex>使用 ECMAScript 的 (ECMA-262) 正则表达式语法,因此它不会有后视(C++11 支持的其他正则表达式风格也没有后视)。

如果您的用例需要使用后视,您可以考虑使用 Boost.Regex相反。

关于c++ - 在 C++11 中使用正则表达式回顾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14538687/

相关文章:

c++ - 在不使用 Arduino 中的 String 对象的情况下将二进制数据转换为其等效的 ASCII

regex - 这个用于验证电子邮件的 RegEx 有什么问题?

c++ - 可变参数 lambda 捕获的解决方法

C++ 'invalid conversion from ‘void*’ 到 ‘crypto_aes_ctx*’

c++ - 无法在Qt中调用静态方法

ruby-on-rails - 如何仅从 url 中提取域?

javascript - url参数提取

c++ - typedef/别名声明的声明点

C++11 无锁栈

c++ - 如何将以下文本文件解析为类?