У меня возникают проблемы с небольшим регулярным выражением, которое соответствует символу одного канала. Я всегда получаю исключение regex_error с кодом error_escape.C++ std :: regex litteral pipe error_escape exception
В это самая основной форме, побег на трубе не работает в POSIX, расширенный POSIX или стандартных режимы синтаксиса
std::regex("\\|", std::regex_constants::extended);
Я попробовал все 3 режима с 2 обратных косыми чертами, только один, и никто.
Я даже пытался соответствовать, используя побег для фактического значения символа трубы:
\\0x7c or \0x7c
С таким же результатом.
Что я делаю неправильно? Все остальные регулярные выражения в моем коде работают, в том числе несколько похожих буквенных символов (+, * и т. Д.).
(Пожалуйста, не предлагают повышение)
Что заставляет вас поверить, что это не работает? Или более точно, что вы подразумеваете под словом «это не работает»? http://coliru.stacked-crooked.com/a/a0b6198080ecdcc5 – rici
Простите, я как-то забыл добавить это! Я обновил описание, за исключением того, что получаю – rscarson
, моя попытка воспроизвести проблему не удалась (см. Ссылку в предыдущем комментарии). Какой компилятор/стандартная библиотека вы используете? И какие версии? – rici