Mac和Linux机器之间的正则兼容性问题

compatibility issues with regex between Mac and Linux machines

本文关键字:兼容性 问题 之间 Linux 机器 Mac      更新时间:2023-10-16

原始问题:"我使用Xcode 8的最新LLVM 8编译器(Clang 8/3.8?)在Mac上开发了一个程序,该编译器(Clang 8/3.8?)大量使用了C 14中的正则表达式。然后,我无法获得我的代码来在Linux上运行时给我正确的输出。似乎我不知道的一些正则表达兼容性问题。

如何解决此问题?

交换std :: for boost ::像so

//using std::regex_replace;
using boost::regex_replace;
using boost::sregex_iterator;
//using std::sregex_iterator;  
//using std::smatch;
using boost::smatch;
//using std::regex;
using boost::regex;

并添加

#include <boost/regex.hpp> 

(我已经在使用boost ::文件系统,因此大多数标题/库已包含/链接)。我猜这并不明显,但是应该指出的是,这两个功能都具有更稳定的父母(至少在boost ::文件系统的情况下,C 中的"实验性"版本实际上只是提升)。

因此,这解决了任何兼容性问题,因为我保证在Mac和Linux机器上都遵循增强规格。

有了这个答案可以节省我5个小时...也许现在可以节省您5个小时。