ПРОГРАММИРОВАНИЕ НА С++ Найдите слова, содержащие букву «sas».
#include <iostream>
#include <fstream>
#include <regex>
int main() {
std::ifstream file("text.txt"); // открыть файл для чтения
if (file.is_open()) { // проверить, открыт ли файл
std::string line;
std::regex pattern("\b\w*sas\w*\b"); // шаблон регулярного выражения
while (std::getline(file, line)) { // читать строки из файла
auto words_begin = std::sregex_iterator(line.begin(), line.end(), pattern); // найти слова, соответствующие шаблону
auto words_end = std::sregex_iterator();
for (std::sregex_iterator i = words_begin; i != words_end; ++i) {
std::smatch match = *i;
std::cout << match.str() << std::endl; // вывести слово в стандартный поток вывода
}
}
file.close(); // закрыть файл
} else {
std::cout << "Unable to open file" << std::endl;
}
return 0;
}
Здесь шаблон регулярного выражения `\b\w*sas\w*\b` находит слова, начинающиеся с любого количества символов `w` (буквы, цифры, знаки подчеркивания), за которыми следует буквосочетание «sas», а затем любое количество символов `w`. Флаги `b` указывают на границы слова (word boundary).
Например, для текстового файла со следующим содержимым:
SAS is a software company.
SAS is known for its data analysis software.
I have a sister named Cassandra.
программа выведет такой результат:
SAS
sister
Cassandra
Это означает, что буквосочетание «sas» содержится в словах «SAS», «sister» и «Cassandra».Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет