Я хочу сопоставить строку, указанную в поле ввода.
A sample data could be "hello" -> returns true
or "\"" -> returns true
or "this is a string" -> returns true
but """ should not be recognized as a string and should return false when checked by the regexp.
Я инициализирую парсер регулярных выражений boost следующим образом:
std::string myString = "\"\"\"";
boost::smatch match;
boost::regex regExpString3("[\"']((:?[^\"']|\\\")+?)[\"']");
bool statusString3 = boost::regex_match(myString, match, regExpString3);
regex_match не должен совпадать, но, к сожалению, совпадает...
Я проверил несколько онлайн-тестеров регулярных выражений: мое регулярное выражение не совпало (как и ожидалось).
Любая идея, если это может быть ошибка повышения или я делаю что-то не так?
Демонстрация отладки: нажмите на меня, чтобы подтвердить ("[\"']((:?[^\"']| \\")+?)[\"']"
Спасибо