我有以下代码:
#include <string>
#include <regex>
#include <iostream>
int main()
{
std::string s;
s += 'x06';
s += 'x00';
std::regex r(std::string(1, 'x06') + 'x00');
std::smatch sm;
if (std::regex_search(s, sm, r))
{
std::cout << "Successn";
return 0;
}
std::cout << "Failuren";
}
在Windows上;成功;而在Linux上;失败";。我在Windows上使用MSVC 19.28,在Linux上使用GNU 9.3.0。为什么输出不同?
根据C++ECMAScript regex风格引用,
十进制转义符