Метод str
Метод str класса smatch возвращает
строку типа std::string, которая содержит
текст, совпавший с регулярным выражением.
Метод не принимает параметров. Он полезен, когда
нужно извлечь найденное совпадение целиком.
Синтаксис
smatch_name.str()
Пример
Давайте найдем первое вхождение числа в строке
и выведем его с помощью метода str:
#include <iostream>
#include <string>
#include <regex>
using namespace std;
int main()
{
string text = "abc 123 de";
regex pattern(R"(\d+)");
smatch matches;
if (regex_search(text, matches, pattern)) {
cout << matches.str() << endl;
}
return 0;
}
Результат выполнения кода:
123
Пример
Давайте найдем несколько совпадений и выведем каждое из них отдельно, используя цикл:
#include <iostream>
#include <string>
#include <regex>
using namespace std;
int main()
{
string text = "a1 b22 c333";
regex pattern(R"(\d+)");
sregex_iterator it(text.begin(), text.end(), pattern);
sregex_iterator end;
while (it != end) {
smatch match = *it;
cout << match.str() << endl;
++it;
}
return 0;
}
Результат выполнения кода:
1
22
333