2

有什么方法可以创建一个包含无符号字符的正则表达式模式?我试过了:

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

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

任何帮助,将不胜感激。

4

1 回答 1

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 个匹配项

你的实施是什么?

于 2013-09-26T02:18:16.493 回答