Здравствуйте. С помощью регулярных выражений я пытаюсь проверить наличие подстроки. Для этого пишу такой код:
std::regex search(searchOption, std::regex::icase);
if(regex_search(currentBook, search))return true;
else return false;
//searchOption - подстрока, которую нужно найти
//currentBook - строка, где нужно искать
Но если у меня searchOption будет равен "C++", то у меня вылетит эксепшн. Можно ли это как-то исправить?
Но если у меня searchOption будет равен "C++", то у меня вылетит эксепшн.
что за бред? зачем вы посылаете в std::regex подстроку? (вот вам и ошибка)
туда надо посылать регулярное выражение! тык 1, тык 2
а чтобы найти "C++" или "app" используйте find/ search
и т.п.
если же вам важны разделители то сначала разберитесь в том как правильно составлять регулярки!
p.s. ну если вам надо найти "app" то ищите " app "
UPD
ну раз можно отправить и саму строку то значит ругается на "++"
если это так, то надо плюсы экранировать \\
Сборка персонального компьютера от Artline: умный выбор для современных пользователей