有没有办法可以创建一个包含unsigned char的正则表达式模式?我试过了:
regex* r = new regex("\\xff");
导致模式字符超出范围的异常。我还尝试在regex包含文件中的代码后面定义我自己的basic_regex和我自己的regex_traits,但这会在本地include中导致奇怪的错误。
任何帮助都将不胜感激。
答案 0 :(得分:0)
这是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匹配
你的实施是什么?