|
| | OnigRegexp (str_type pattern) |
| | Создает объект Onig Regexp.
|
| |
| size_t | search (str_type text, size_t offset=0) |
| | Поиск положения первого вхождения.
|
| |
| SIMREX_API size_t | count_of (const str_type &text, size_t maxCount=-1, size_t offset=0) |
| | Посчитать количество вхождений.
|
| |
| template<typename T = str_type> |
| T | first_founded (str_type text, size_t offset=0) const |
| | Текст первого найденного вхождения.
|
| |
| template<typename T = str_type> |
| std::vector< T > | all_founded (str_type text, size_t offset=0, size_t maxCount=-1) const |
| | Получить тексты всех найденных вхождений, без разделения на подгруппы.
|
| |
| template<typename T = str_type> |
| std::vector< T > | first_matched (str_type text, size_t offset=0) const |
| | Получить текст первого найденного вхождения вместе с текстами подгрупп.
|
| |
| template<typename T = str_type> |
| std::vector< std::vector< T > > | all_matched (str_type text, size_t offset=0, size_t maxCount=-1) const |
| | Получить тексты всех найденных вхождений вместе с подгруппами.
|
| |
| template<typename T = str_type> |
| std::vector< std::pair< size_t, T > > | first_match (str_type text, size_t offset=0) const |
| | Получить всю информацию о первом найденном вхождении.
|
| |
| template<typename T = str_type> |
| std::vector< std::vector< std::pair< size_t, T > > > | all_matches (str_type text, size_t offset=0, size_t maxCount=-1) const |
| | Получить всю информацию о всех найденных вхождениях.
|
| |
template<StrType< K > U, typename T = std::remove_cvref_t<U>>
requires storable_str<T, K> |
| T | replace (U &&text, str_type replText, size_t offset=0, size_t maxCount=-1, bool substGroups=true) |
| | Заменить вхождения на заданный текст.
|
| |
template<StrType< K > U, typename T = std::remove_cvref_t<U>>
requires storable_str<T, K> |
| T | replace_cb (U &&text, auto replacer, size_t offset=0, size_t maxCount=-1) |
| | Заменить вхождения на текст, возвращаемый из функции обработчика.
|
| |
template<typename K>
class simrex::OnigRegexp< K >
Класс для работы с oniguruma регэкспами
- Параметры шаблона
-
template<typename K>
template<StrType< K > U, typename T = std::remove_cvref_t<U>>
requires storable_str<T, K>
| T simrex::OnigRegexp< K >::replace_cb |
( |
U && | text, |
|
|
auto | replacer, |
|
|
size_t | offset = 0, |
|
|
size_t | maxCount = -1 ) |
|
inline |
Заменить вхождения на текст, возвращаемый из функции обработчика.
- Параметры шаблона
-
| U | - тип исходного текста, выводится из аргумента. |
| T | - тип результата. По умолчанию имеет тип исходного текста, если исходный тип - владеющий (sstring, lstring). |
- Аргументы
-
| text | - исходный текст, в котором ищем. |
| replacer | - функция, получающая информацию о вхождении и возвращающая текст, которым будет заменено вхождение. |
| offset | - начальная позиция поиска (по умолчанию 0). |
| maxCount | - максимальное количество для ограничения поиска. |
- Возвращает
- текст, полученный из исходного текста заменой найденных вхождений на текст, возвращаемый функцией обработчиком.
функция обработчик получает информацию о вхождении в виде вектора пар, первый элемент вектора - описывает всё вхождение, последующие - подгруппы вхождения. Каждая пара содержит позицию начала текста, и сам найденный текст. Вернуть же она должна текст, который будет вставлен вместо вхождения.