テキスト「\0」を、「a」または「b」と一致するのと同じ正規表現と一致させる必要があります。(C++ の文字定数の正規表現)。さまざまな正規表現を試しましたが、まだ成功していません。私の最近の試み:
^['].|\\0[']
私が試した他のことのほとんどはセグフォルトを与えたので、これは私が得た最も近いものです.
これは、私がテストしたもの('a'、'b'、'\ 0')と非常にうまく機能します。
あなたが持っていないか、私があなたがそれから何を得ることができるかを推測するstd::regex
ならば、私が使用した正規表現がであるという事実です。boost::regex
('.'|'\\0')
#include <boost/regex.hpp>
#include <string>
#include <iostream>
#include <vector>
int main() {
std::vector<std::string> strings;
strings.push_back(R"('a')");
strings.push_back(R"('b')");
strings.push_back(R"('\0')");
boost::regex rgx(R"(('.'|'\\0'))");
boost::smatch match;
for(auto& i : strings) {
if(boost::regex_match(i,match, rgx)) {
boost::ssub_match submatch = match[1];
std::cout << submatch.str() << '\n';
}
}
}
機能する正規表現 (この例では C ヘッダーを使用) は次のとおりです。
^('(.|([\\]0))')
助けてくれた@WhozCraigに感謝します!