2

unsigned char を含む正規表現パターンを作成する方法はありますか? 私はもう試した:

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

パターン文字が範囲外であるという例外が発生します。また、正規表現インクルード ファイルのコードに従って独自の basic_regex と独自の regex_traits を定義しようとしましたが、ローカル インクルードで奇妙なエラーが発生します。

どんな助けでも大歓迎です。

4

1 に答える 1

0

これは ECMAScript 正規表現 (C++ がデフォルトで使用するもの) の正当な HexEscapeSequence であり、私のテストでは動作するようです:

#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 (std:: を boost:: に置き換える):「abc」の後に 1 つの一致が見つかりました

あなたの実装は何ですか?

于 2013-09-26T02:18:16.493 に答える