#include <iostream>
#include <regex>
#include <string>
int main() {
// Исходная строка для поиска
setlocale(LC_ALL, "rus");
std::string text = "Вот пример текста с разными словами: день, тень, конь, дверь , Дверь , стол, пень, мышь, книга.";
// Регулярное выражение: 4 любые кириллические буквы + мягкий знак, границы слов
//std::regex pattern(R"([а-яА-Я]{4}ь)");
std::regex pattern(R"([а-яА-Я]{3}ь)");
// Объект для хранения результатов поиска
std::smatch matches;
// Поиск всех вхождений
auto words_begin = std::sregex_iterator(text.begin(), text.end(), pattern);
auto words_end = std::sregex_iterator();
// Вывод результатов
if (words_begin == words_end) {
std::cout << "Слова из 5 букв с мягким знаком не найдены.\n";
}
else {
std::cout << "Найденные слова:\n";
for (std::sregex_iterator i = words_begin; i != words_end; ++i) {
std::cout << i->str() << "\n";
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8cmVnZXg+CiNpbmNsdWRlIDxzdHJpbmc+CgppbnQgbWFpbigpIHsKICAgIC8vINCY0YHRhdC+0LTQvdCw0Y8g0YHRgtGA0L7QutCwINC00LvRjyDQv9C+0LjRgdC60LAKICAgIHNldGxvY2FsZShMQ19BTEwsICJydXMiKTsKICAgIHN0ZDo6c3RyaW5nIHRleHQgPSAi0JLQvtGCINC/0YDQuNC80LXRgCDRgtC10LrRgdGC0LAg0YEg0YDQsNC30L3Ri9C80Lgg0YHQu9C+0LLQsNC80Lg6INC00LXQvdGMLCDRgtC10L3RjCwg0LrQvtC90YwsINC00LLQtdGA0YwgLCDQlNCy0LXRgNGMICwg0YHRgtC+0LssINC/0LXQvdGMLCDQvNGL0YjRjCwg0LrQvdC40LPQsC4iOwoKICAgIC8vINCg0LXQs9GD0LvRj9GA0L3QvtC1INCy0YvRgNCw0LbQtdC90LjQtTogNCDQu9GO0LHRi9C1INC60LjRgNC40LvQu9C40YfQtdGB0LrQuNC1INCx0YPQutCy0YsgKyDQvNGP0LPQutC40Lkg0LfQvdCw0LosINCz0YDQsNC90LjRhtGLINGB0LvQvtCyCiAgICAvL3N0ZDo6cmVnZXggcGF0dGVybihSIihb0LAt0Y/QkC3Qr117NH3RjCkiKTsKICAgIHN0ZDo6cmVnZXggcGF0dGVybihSIihb0LAt0Y/QkC3Qr117M33RjCkiKTsKCgogICAgLy8g0J7QsdGK0LXQutGCINC00LvRjyDRhdGA0LDQvdC10L3QuNGPINGA0LXQt9GD0LvRjNGC0LDRgtC+0LIg0L/QvtC40YHQutCwCiAgICBzdGQ6OnNtYXRjaCBtYXRjaGVzOwoKICAgIC8vINCf0L7QuNGB0Log0LLRgdC10YUg0LLRhdC+0LbQtNC10L3QuNC5CiAgICBhdXRvIHdvcmRzX2JlZ2luID0gc3RkOjpzcmVnZXhfaXRlcmF0b3IodGV4dC5iZWdpbigpLCB0ZXh0LmVuZCgpLCBwYXR0ZXJuKTsKICAgIGF1dG8gd29yZHNfZW5kID0gc3RkOjpzcmVnZXhfaXRlcmF0b3IoKTsKCiAgICAvLyDQktGL0LLQvtC0INGA0LXQt9GD0LvRjNGC0LDRgtC+0LIKICAgIGlmICh3b3Jkc19iZWdpbiA9PSB3b3Jkc19lbmQpIHsKICAgICAgICBzdGQ6OmNvdXQgPDwgItCh0LvQvtCy0LAg0LjQtyA1INCx0YPQutCyINGBINC80Y/Qs9C60LjQvCDQt9C90LDQutC+0Lwg0L3QtSDQvdCw0LnQtNC10L3Riy5cbiI7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBzdGQ6OmNvdXQgPDwgItCd0LDQudC00LXQvdC90YvQtSDRgdC70L7QstCwOlxuIjsKICAgICAgICBmb3IgKHN0ZDo6c3JlZ2V4X2l0ZXJhdG9yIGkgPSB3b3Jkc19iZWdpbjsgaSAhPSB3b3Jkc19lbmQ7ICsraSkgewogICAgICAgICAgICBzdGQ6OmNvdXQgPDwgaS0+c3RyKCkgPDwgIlxuIjsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIDA7Cn0=