simrex 1.0
Simstr wrapper for Oniguruma regexp
 
Загрузка...
Поиск...
Не найдено
Шаблон класса simrex::OnigRegexp< K >

Класс для работы с oniguruma регэкспами Подробнее...

#include <onig.h>

Открытые члены

 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>
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>
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>
replace_cb (U &&text, auto replacer, size_t offset=0, size_t maxCount=-1)
 Заменить вхождения на текст, возвращаемый из функции обработчика.
 

Подробное описание

template<typename K>
class simrex::OnigRegexp< K >

Класс для работы с oniguruma регэкспами

Параметры шаблона
K- тип символов

Конструктор(ы)

◆ OnigRegexp()

template<typename K>
simrex::OnigRegexp< K >::OnigRegexp ( str_type pattern)
inline

Создает объект Onig Regexp.

Аргументы
pattern- регулярное выражение.

Методы

◆ all_founded()

template<typename K>
template<typename T = str_type>
std::vector< T > simrex::OnigRegexp< K >::all_founded ( str_type text,
size_t offset = 0,
size_t maxCount = -1 ) const
inline

Получить тексты всех найденных вхождений, без разделения на подгруппы.

Параметры шаблона
T- тип текста в возвращаем результате, по умолчанию simple_str<K>.
Аргументы
text- текст, в котором ищем.
offset- начальная позиция поиска (по умолчанию 0).
maxCount- максимальное количество для ограничения поиска.
Возвращает
std::vector<T> - вектор с текстами всех найденных вхождений.

◆ all_matched()

template<typename K>
template<typename T = str_type>
std::vector< std::vector< T > > simrex::OnigRegexp< K >::all_matched ( str_type text,
size_t offset = 0,
size_t maxCount = -1 ) const
inline

Получить тексты всех найденных вхождений вместе с подгруппами.

Параметры шаблона
T- тип текста в возвращаем результате, по умолчанию simple_str<K>.
Аргументы
text- текст, в котором ищем.
offset- начальная позиция поиска (по умолчанию 0).
maxCount- максимальное количество для ограничения поиска.
Возвращает
std::vector<std::vector<T>> - массив с массивами, в которых в первом элементе находится текст всего найденного вхождения, а далее тексты подгрупп.

◆ all_matches()

template<typename K>
template<typename T = str_type>
std::vector< std::vector< std::pair< size_t, T > > > simrex::OnigRegexp< K >::all_matches ( str_type text,
size_t offset = 0,
size_t maxCount = -1 ) const
inline

Получить всю информацию о всех найденных вхождениях.

Параметры шаблона
T- тип текста в возвращаем результате, по умолчанию simple_str<K>.
Аргументы
text- текст, в котором ищем.
offset- начальная позиция поиска (по умолчанию 0).
maxCount- максимальное количество для ограничения поиска.
Возвращает
std::vector<std::vector<std::pair<size_t, T>>> - массив со всеми вхождениями, в котором каждый элемент - массив, описывающий вхождение, в котором первый элемент описывает всё вхождение, а следующие - подгруппы вхождения. Описание представляет собой пару, первый элемент которой - позиция начала вхождения, второй - текст вхождения.

◆ count_of()

template<typename K>
size_t simrex::OnigRegexp< K >::count_of ( const str_type & text,
size_t maxCount = -1,
size_t offset = 0 )

Посчитать количество вхождений.

Аргументы
text- текст, в котором ищем.
maxCount- максимальное количество для ограничения поиска.
offset- начальная позиция поиска (по умолчанию 0).
Возвращает
количество найденных вхождений.

◆ first_founded()

template<typename K>
template<typename T = str_type>
T simrex::OnigRegexp< K >::first_founded ( str_type text,
size_t offset = 0 ) const
inline

Текст первого найденного вхождения.

Параметры шаблона
T- тип текста в возвращаем результате, по умолчанию simple_str<K>.
Аргументы
text- текст, в котором ищем.
offset- начальная позиция поиска (по умолчанию 0).
Возвращает
T - текст найденного вхождения, или пустую строку, если не найдено.

◆ first_match()

template<typename K>
template<typename T = str_type>
std::vector< std::pair< size_t, T > > simrex::OnigRegexp< K >::first_match ( str_type text,
size_t offset = 0 ) const
inline

Получить всю информацию о первом найденном вхождении.

Параметры шаблона
T- тип текста в возвращаем результате, по умолчанию simple_str<K>.
Аргументы
text- текст, в котором ищем.
offset- начальная позиция поиска (по умолчанию 0).
Возвращает
std::vector<std::pair<size_t, T>> - массив, в котором первый элемент описывает всё вхождение, а следующие - подгруппы вхождения. Описание представляет собой пару, первый элемент которой - позиция начала вхождения, второй - текст вхождения.

◆ first_matched()

template<typename K>
template<typename T = str_type>
std::vector< T > simrex::OnigRegexp< K >::first_matched ( str_type text,
size_t offset = 0 ) const
inline

Получить текст первого найденного вхождения вместе с текстами подгрупп.

Параметры шаблона
T- тип текста в возвращаем результате, по умолчанию simple_str<K>.
Аргументы
text- текст, в котором ищем.
offset- начальная позиция поиска (по умолчанию 0).
Возвращает
std::vector<T> - массив с текстами найденного вхождения - в первом элементе массива возвращает текст всего найденного вхождения, а далее тексты подгрупп.

◆ replace()

template<typename K>
template<StrType< K > U, typename T = std::remove_cvref_t<U>>
requires storable_str<T, K>
T simrex::OnigRegexp< K >::replace ( U && text,
str_type replText,
size_t offset = 0,
size_t maxCount = -1,
bool substGroups = true )
inline

Заменить вхождения на заданный текст.

Параметры шаблона
U- тип исходного текста, выводится из аргумента.
T- тип результата. По умолчанию имеет тип исходного текста, если исходный тип - владеющий (sstring, lstring).
Аргументы
text- исходный текст, в котором ищем.
replText- текст, которым заменять найденные вхождения.
offset- начальная позиция поиска (по умолчанию 0).
maxCount- максимальное количество для ограничения поиска.
substGroups- обрабатывать в тексте замены шаблон вставки подгрупп.
Возвращает
текст, полученный из исходного текста заменой найденных вхождений на заданный шаблон. При substGroups == true, в шаблоне помимо постоянного текста можно указывать номера подгрупп, вместо них будут вставлены найденные подгруппы: $N - подгруппы от 0 до 9 ($1, $2 и т.п.). ${NNN} - подгруппы от 0 до N (${10}, ${12} и т.п.). $$ - вставляет один $. $Любые другие варианты - вставляются как есть.

◆ replace_cb()

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- максимальное количество для ограничения поиска.
Возвращает
текст, полученный из исходного текста заменой найденных вхождений на текст, возвращаемый функцией обработчиком.

функция обработчик получает информацию о вхождении в виде вектора пар, первый элемент вектора - описывает всё вхождение, последующие - подгруппы вхождения. Каждая пара содержит позицию начала текста, и сам найденный текст. Вернуть же она должна текст, который будет вставлен вместо вхождения.

◆ search()

template<typename K>
size_t simrex::OnigRegexp< K >::search ( str_type text,
size_t offset = 0 )
inline

Поиск положения первого вхождения.

Аргументы
text- текст, в котором ищем.
offset- начальная позиция поиска (по умолчанию 0).
Возвращает
size_t - позицию найденного вхождения, -1, если не найдено.

Объявления и описания членов классов находятся в файлах: