Добрый вечер. Неправильно работает регулярное выражение с файлом

#include <iostream> 
#include <fstream>
#include <string>
#include <regex>


using namespace std;
int main(){

regex r1("(.* lecture.*)");
regex r2("(.* practice.*)");
regex r3("(.* laboratory practice.*)");
smatch base_match;
int lecture=0; 
int prakt=0;
int lab=0;
string name= "rozklad.txt";
ifstream fin;
fin.open(name);
if(!fin.is_open()){
    cout << "didint open ";
}
else {
string str;
while(!fin.eof()){
   str="";
   getline(fin, str);
   cout<< str << endl;
   
   if(regex_match(str, base_match, r1 )) {
       lecture++;
   }
   if(regex_match(str, base_match, r2 )) {
       prakt++;
        

           }
       if(regex_match(str, base_match, r3 )) {
       lab++;
       
   }

   }

    }
cout << "Количество лекций: " << lecture << "\n";
cout << "Количество практик: " << prakt << "\n";
cout << "Количество лабораторных: " << lab << "\n";

fin.close();
}

Дан файл с расписанием(лекии, практики и лабораторная работа). С помощью регулярного выражения нужно почитать кол-во лекций, практик и лабораторных. Этот код выдает мне неправильное кол-во лекций и практик.Помогите разобраться. введите сюда описание изображения


Ответы (0 шт):