Я использую какое-то регулярное выражение с ускорением для поиска целого слова внутри некоторой строки. Исходный код выглядит так:
boost::regex regExp;
std::string searchExpression;
searchExpression = "((\\b)" + searchExpression + "(\\b)|(?<=^|\\s)" + searchExpression + "(?=\\s|$))";
regExp.assign(lConvertedSearchExpression, boost::regex_constants::normal | boost::regex_constants::icase);
Регулярное выражение внутри searchExpression
хорошо работает с другими моими инструментами. Так что думаю, ничего страшного не будет. Но если я попытаюсь присвоить строку boost::regex
, как вы можете видеть в примере, я получу исключение. Исключение составляет часть "(?<=^|\\s)"
. Если я удалю часть "|\\s"
, все будет работать хорошо.
Итак, мой вопрос теперь в том, что я делаю неправильно внутри этого выражения. Я надеюсь, что кто-то может мне помочь и увидит ошибку.
Особая благодарность всем, кто может помочь мне в дальнейшем.