将regexp模式定义为unsigned char

时间:2013-09-26 01:48:20

标签: c++ regex

有没有办法可以创建一个包含unsigned char的正则表达式模式?我试过了:

regex* r = new regex("\\xff");

导致模式字符超出范围的异常。我还尝试在regex包含文件中的代码后面定义我自己的basic_regex和我自己的regex_traits,但这会在本地include中导致奇怪的错误。

任何帮助都将不胜感激。

1 个答案:

答案 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匹配

你的实施是什么?