C++正则表达式失败(GCC vs Microsoft 编译器)
C++ regex failure (gcc vs microsoft compiler)
我在项目中有以下正则表达式代码:
// Defintions to make readability easier:
#define BEGIN "\{"
#define END "\}n"
#define VEC2 "\((.+), (.+)\)"
#define VEC3 "\((.+), (.+), (.+)\)"
#define COMMA ", "
....
char input[256];
fgets(buffer, 256, file);
....
std::cmatch result;
std::regex_match(input, result, std::regex("vertex " BEGIN VEC3 COMMA VEC3 COMMA VEC2 END)); // fails
下面是一个示例输入:
vertex {(0.000002, 0.445344, 0.996317), (0.000000, 0.979064, -0.203466), (0.507950, 0.502418)}
从本质上讲,这个正则表达式在 GCC v5.4 上失败(返回 false(,但它在 Microsoft Windows 的官方编译器上完美运行,并且在许多正则表达式测试站点上也有效。我相信这应该有效,但想知道为什么它会失败。
哇,原来这是我的行尾。该文件是由Windows程序写出的,因此该行以rn
结尾。对于将来的正则表达式,请检查您的行尾;)
相关文章:
- 与其他编译器相比,相同的代码在工作室Microsoft提供不同的输出
- C++正则表达式失败(GCC vs Microsoft 编译器)
- 为什么这C++只在编译器上编码一个不明确的方法调用Microsoft?
- 如何使用Microsoft Visual Studio 2017配置外部编译器,如gcc +14
- 带有Eclipse的Microsoft Visual C++Build Tools编译器
- 具有状态的Microsoft编译器版本19.16.27024.1的问题
- 使用Microsoft编译器生成 CMOV 指令
- Docker中的Microsoft编译器
- 我应该在Qt创建者中更改什么,以便使用MinGW而不是microsoft编译器进行编译
- NEAT C++ Visual Studio 2012 Microsoft编译器错误
- Microsoft C++编译器有一个错误
- Microsoft Python 2.7..编译器无法下载,我应该使用什么更高版本?
- visual MSVC编译器错误C2688:Microsoft C++ABI角大小写问题
- 模板类中的尾随返回类型(GNU和Microsoft编译器之间的矛盾)
- 在Windows 7中通过GnuWin32使用Microsoft Visual C/C++编译器编译源(.C)文件时出错
- visual Microsoft C++编译器:如何使用/O2禁用自动矢量化
- 在 G++ 中">"之前但在 Microsoft 编译器中不的预期主表达式
- 使用Microsoft c++编译器,无需安装Visual Studio
- 如何在没有IDE的情况下使用Microsoft c++编译器编译c++库
- 无法使用Microsoft编译器编译Qt