Witam
Próbuję się nauczyć regexa i nie rozumiem jak działa regex_search. Tzn. wiem że zwraca true jak sekwencja jest substringiem, ale on tam ma jeszcze argument smatch it ego nie kumam jak
to może być użyteczne.
#include <stdio.h>
#include <regex>
#include <iostream>
#include <string>
int main()
{
std::regex pattern("^(abc)+.xz");
std::string text {"abc.xz"};
std::smatch s;
if(std::regex_search(text,s,pattern)) {
std::cout << "found seq" << std::endl;
for(auto x: s)
std::cout << x << std::endl;
}
return 0;
}
Output spodziewałbym się że będzie abc.xz a jest:
abc.xz
abc
Jak dam powyżej
std::regex pattern("(abc)");
std::string text {"abc"};
to dwa razy otrzymuję jako output abc. Czemu nie raz?