- Регулярные выражения — это формальный язык для описания шаблонов поиска и обработки текста. В анализе естественного языка они служат мощным инструментом для выявления определенных структур, паттернов и сущностей в тексте.
- Анализ текста:
- с помощью регулярных выражений: имён собственных (людей, городов, сёл), числовых фактов, данных (дни рождений, телефонов, адресов);
- частотный анализ.
- Подключение библиотеки регулярных выражений: #include <regex>.
- Алгоритмы:
- regex_match (проверка совпадения регулярного выражения по всей строке);
- regex_search (поиск соответствия регулярному выражению);
- regex_replace (замена соответствующих регулярных выражений).
Пример. Выведите все числа, которые встречаются в строке «’32abc67j323k534m9;».
regex re (R"(\d+)"); // Условие встречи цифр
smatch parts; // Совпадение на строковых объектах
while (regex_search (str, parts, re)) {
cout << "Найдены числа: " << parts.str () << "\n";
str = parts.suffix (); } // Отсечение от строки уже обработанных символов
. | [abcd] | [a–z] | [^a–z] | \d | \w | \s |
---|---|---|---|---|---|---|
Любой символ | Один из символов списка | Один из символов диапазона | Один из символов вне диапазона | Цифра | Слово | Пробел |