Метод prefix
Метод prefix класса smatch возвращает объект sub_match, представляющий часть исходной строки, которая находится перед найденным совпадением. Этот метод не принимает параметров. Он полезен, когда нужно проанализировать контекст, в котором было найдено регулярное выражение, или извлечь текст, предшествующий совпадению.
Синтаксис
smatch.match_results.prefix()
Пример
Давайте найдем слово "bcd" в строке "abcde" и выведем часть строки, которая идет перед совпадением:
#include <iostream>
#include <string>
#include <regex>
using namespace std;
int main()
{
string str = "abcde";
regex re("bcd");
smatch matches;
if (regex_search(str, matches, re)) {
cout << matches.prefix() << endl;
}
return 0;
}
Результат выполнения кода:
"a"
Пример
Давайте найдем число "123" в строке "abc12345" и выведем часть строки, которая идет перед совпадением:
#include <iostream>
#include <string>
#include <regex>
using namespace std;
int main()
{
string str = "abc12345";
regex re("123");
smatch matches;
if (regex_search(str, matches, re)) {
cout << matches.prefix() << endl;
}
return 0;
}
Результат выполнения кода:
"abc"