有什么方法可以创建一个包含无符号字符的正则表达式模式?我试过了:
regex* r = new regex("\\xff");
这导致异常说模式字符超出范围。我还尝试在正则表达式包含文件中的代码之后定义我自己的 basic_regex 和我自己的 regex_traits ,但这会导致本地包含中出现奇怪的错误。
任何帮助,将不胜感激。
这是 ECMAScript 正则表达式中的合法 HexEscapeSequence(这是 C++ 默认使用的),它似乎适用于我的测试:
#include <iostream>
#include <regex>
int main()
{
std::regex re("\\xff");
std::string test = "abc\xff";
std::smatch m;
regex_search(test, m, re);
std::cout << "Found " << m.size() << " match after '"
<< m.prefix() << "'\n";
}
clang++/libc++:在“abc”之后找到 1 个匹配项
g++/boost.regex(用 boost:: 替换 std::):在 'abc' 之后找到 1 个匹配项
你的实施是什么?