区切り記号 ( \"
) を 1 文字として扱う正規表現を作成しようとしています。
次のコードは正常にコンパイルされますが、rgx を初期化しようとすると終了し、Abort trap: 6
libc++ を使用してエラーがスローされます。
std::regex rgx("[[.\\\\\".]]");
std::smatch results;
std::string test_str("\\\"");
std::regex_search(test_str, results, rgx);
を削除すると[[. .]]
、正常に動作し、意図したとおりにresults[0]
戻り\"
ますが、前述のように、このシーケンスを文字クラスとして使用できるようにしたいと考えています。
編集: わかりました、照合シーケンスの以前の理解が間違っていたことに気付きました。それが機能しない理由は\\\\\"
、シーケンスとして定義されていないためです。だから私の新しい質問: 照合されたシーケンスを定義することは可能ですか?