я планировал использовать следующее регулярное выражение, чтобы захватить путь и имя файла:регулярного выражения Visual Studio
std::regex capture_path_name_file("(.+)\\([^\\]+)\\.[^\\]+$");
но при запуске (я использую Visual Studio) я получаю ошибку REGEX
error_brack: the expression contained mismatched [ and ]
Пытаясь определить причину я попробовал следующее регулярное выражение:
std::regex test("[^\\]")
и я получил ту же ошибку.
Я проверил мое регулярное выражение в regex101.com (с небольшой разницей, что я должен был использовать \.
вместо \\.
)
Спасибо за любую помощь.
В синтаксисе C++ '' [^ \\] "' означает '[^ \]', который в регулярном выражении является несогласованным '['. Если вы хотите создать класс символов «не обратная косая черта», вам придется сбежать один раз для C++ и один раз для регулярного выражения, т. Е. '[^ \\\\]'. – Biffen
Это для php, но также должно ответить на ваш вопрос: http://stackoverflow.com/a/14783396/4181011 –
См. [Это демо] (https://ideone.com/UpArVo). –