str_regex_substr
Получить из текста подстроку, соответствующую шаблону.
Вызов:
bool str_regex_substr(string source, string code, string usSubstrRes, string usPrefix, string usSuffix);
Здесь:
source - строковая переменная с текстом, из которого требуется получить текст, соответствующий шаблону;
code - шаблон;
usSubstrRes - реальный фрагмент из текста, соответствующая шаблону;
usPrefix - строка, предшествующая фрагменту текста;
usSuffix - строка за фрагментом до конца текста;
Возвращает true - если текст, соответствующий шаблону найден.
Пример: получить из текста ширину и высоту дверного блока
string s = "Дверной блок из алюминиевых профилей (BxH): 1400x2100 мм"; // исходный текст
string usSubstrRes, usPrefix, usSuffix;
string code = "\\(BxH\\)\\: \\d{1,}x.*\\d{1,}"; // шаблон означает: текст, у которого (BxH): "одна или несколько цифр" x "одна или несколько цифр"
bool b = str_regex_substr(s, code, usSubstrRes, usPrefix, usSuffix);
if (b)
{
coutvar << usSubstrRes; // в окно сообщений будет выведено "(BxH): 1400x2100 мм"
code = "\\d{1,}"; // шаблон означает: текст, у которого "одна или несколько цифр"
b = str_regex_substr(usSubstrRes, code, usSubstrRes, usPrefix, usSuffix);
coutvar << usSubstrRes; // в окно сообщений будет выведено "1400"
if (b)
{
code = "\\d{1,}"; // шаблон означает: текст, у которого "одна или несколько цифр"
// для поиска второго числа используем суффикс от прошлого поиска
b = str_regex_substr(usSuffix, code, usSubstrRes, usPrefix, usSuffix);
coutvar << usSubstrRes; // будет выведено "2100"
}
}