merged AI doc, some new pages
This commit is contained in:
@@ -1,9 +1,8 @@
|
||||
/*! \file pistring.h
|
||||
* \ingroup Text
|
||||
* \brief
|
||||
* \~english Regular expression
|
||||
* \~russian Регулярное выражение
|
||||
*/
|
||||
//! \~\file piregularexpression.h
|
||||
//! \~\ingroup Text
|
||||
//! \brief
|
||||
//! \~english Regular expression
|
||||
//! \~russian Регулярное выражение
|
||||
/*
|
||||
PIP - Platform Independent Primitives
|
||||
Regular expression
|
||||
@@ -28,137 +27,102 @@
|
||||
|
||||
#include "pistring.h"
|
||||
|
||||
//! \ingroup Text
|
||||
//! \brief Regular expression class
|
||||
//! \~english Class for working with regular expressions
|
||||
//! \~russian Класс для работы с регулярными выражениями
|
||||
//!
|
||||
//! \~\ingroup Text
|
||||
//! \~\brief
|
||||
//! \~english Regular expression class.
|
||||
//! \~russian Класс регулярного выражения.
|
||||
class PIP_EXPORT PIRegularExpression {
|
||||
public:
|
||||
//! \brief
|
||||
//! \~english Options for regular expression matching behavior
|
||||
//! \~russian Опции поведения регулярного выражения
|
||||
//! \~english Matching options.
|
||||
//! \~russian Опции сопоставления.
|
||||
enum Option {
|
||||
None = 0x0, /*!< \~english No special options \~russian Без специальных опций */
|
||||
CaseInsensitive = 0x01, /*!< \~english Case insensitive matching \~russian Регистронезависимое сопоставление */
|
||||
Singleline = 0x02, /*!< \~english Dot matches newline \~russian Точка соответствует символу новой строки */
|
||||
Multiline = 0x04, /*!< \~english ^ and $ match at line boundaries \~russian ^ и $ соответствуют границам строк */
|
||||
InvertedGreediness = 0x08, /*!< \~english Quantifiers are non-greedy by default \~russian Квантификаторы по умолчанию нежадные */
|
||||
Extended = 0x10 /*!< \~english Extended pattern syntax \~russian Расширенный синтаксис шаблона */
|
||||
None = 0x0 /*!< \~english No extra options \~russian Без дополнительных опций */,
|
||||
CaseInsensitive = 0x01 /*!< \~english Ignore character case \~russian Игнорировать регистр символов */,
|
||||
Singleline = 0x02 /*!< \~english Let \c . match a newline \~russian Разрешить \c . совпадать с переводом строки */,
|
||||
Multiline =
|
||||
0x04 /*!< \~english Let \c ^ and \c $ work on line boundaries \~russian Разрешить \c ^ и \c $ работать на границах строк */,
|
||||
InvertedGreediness =
|
||||
0x08 /*!< \~english Make quantifiers non-greedy by default \~russian Сделать квантификаторы по умолчанию нежадными */,
|
||||
Extended = 0x10 /*!< \~english Use extended pattern syntax \~russian Использовать расширенный синтаксис шаблона */
|
||||
};
|
||||
|
||||
//! \brief
|
||||
//! \~english Combination of regular expression options
|
||||
//! \~russian Комбинация флагов опций регулярного выражения
|
||||
//! \~english Flag set of \a Option values.
|
||||
//! \~russian Набор флагов \a Option.
|
||||
typedef PIFlags<Option> Options;
|
||||
|
||||
|
||||
//! \brief
|
||||
//! \~english Creates regular expression with given pattern and options
|
||||
//! \~russian Создает регулярное выражение с указанным шаблоном и опциями
|
||||
//! \~english \param pattern Regular expression pattern
|
||||
//! \~russian \param pattern Шаблон регулярного выражения
|
||||
//! \~english \param opt Matching options
|
||||
//! \~russian \param opt Опции сопоставления
|
||||
//! \~english Creates a regular expression from \a pattern and \a opt.
|
||||
//! \~russian Создает регулярное выражение из \a pattern и \a opt.
|
||||
PIRegularExpression(const PIString & pattern = {}, Options opt = None);
|
||||
|
||||
|
||||
//! \brief
|
||||
//! \~english Creates copy of regular expression
|
||||
//! \~russian Создает копию регулярного выражения
|
||||
//! \~english \param o Source regular expression
|
||||
//! \~russian \param o Исходное регулярное выражение
|
||||
//! \~english Creates a copy of another regular expression.
|
||||
//! \~russian Создает копию другого регулярного выражения.
|
||||
PIRegularExpression(const PIRegularExpression & o);
|
||||
|
||||
|
||||
//! \brief
|
||||
//! \~english Assigns regular expression
|
||||
//! \~russian Присваивает регулярное выражение
|
||||
//! \~english \param o Source regular expression
|
||||
//! \~russian \param o Исходное регулярное выражение
|
||||
//! \~english Assigns another regular expression.
|
||||
//! \~russian Присваивает другое регулярное выражение.
|
||||
PIRegularExpression & operator=(const PIRegularExpression & o);
|
||||
|
||||
|
||||
//! \brief
|
||||
//! \~english Destroys regular expression object
|
||||
//! \~russian Уничтожает объект регулярного выражения
|
||||
//! \~english Destroys the regular expression object.
|
||||
//! \~russian Уничтожает объект регулярного выражения.
|
||||
~PIRegularExpression();
|
||||
|
||||
|
||||
//! \brief
|
||||
//! \~english Class containing regular expression match results
|
||||
//! \~russian Класс, содержащий результаты сопоставления регулярного выражения
|
||||
//! \~\brief
|
||||
//! \~english Match result and iterator state.
|
||||
//! \~russian Результат сопоставления и состояние итерации.
|
||||
class PIP_EXPORT Matcher {
|
||||
friend class PIRegularExpression;
|
||||
|
||||
public:
|
||||
//! \brief
|
||||
//! \~english Returns true if match was found
|
||||
//! \~russian Возвращает true, если совпадение найдено
|
||||
//! \~english Returns \c true when a match is available.
|
||||
//! \~russian Возвращает \c true, если найдено совпадение.
|
||||
operator bool() const { return hasMatch(); }
|
||||
|
||||
//! \brief
|
||||
//! \~english Returns true if match was found
|
||||
//! \~russian Возвращает true, если совпадение найдено
|
||||
//! \~english Returns \c true when a match is available.
|
||||
//! \~russian Возвращает \c true, если найдено совпадение.
|
||||
bool hasMatch() const;
|
||||
|
||||
//! \brief
|
||||
//! \~english Attempts to find next match in subject string
|
||||
//! \~russian Пытается найти следующее совпадение в строке
|
||||
//! \~english \return true if next match was found
|
||||
//! \~russian \return true, если следующее совпадение найдено
|
||||
//! \~english Advances to the next match in the same subject.
|
||||
//! \~russian Переходит к следующему совпадению в той же строке.
|
||||
bool next();
|
||||
|
||||
|
||||
//! \brief
|
||||
//! \~english Returns list of all matched strings
|
||||
//! \~russian Возвращает список всех совпавших строк
|
||||
//! \~english Returns all captured strings of the current match.
|
||||
//! \~russian Возвращает все захваченные строки текущего совпадения.
|
||||
PIStringList matchedStrings() const;
|
||||
|
||||
|
||||
//! \brief
|
||||
//! \~english Returns matched substring by index
|
||||
//! \~russian Возвращает совпавшую подстроку по индексу
|
||||
//! \~english \param index Capture group index (0 for entire match)
|
||||
//! \~russian \param index Индекс группы захвата (0 для полного совпадения)
|
||||
//! \~english Returns the captured substring at \a index.
|
||||
//! \~russian Возвращает захваченную подстроку по \a index.
|
||||
PIString matchedString(int index = 0) const;
|
||||
|
||||
//! \brief
|
||||
//! \~english Returns start position of matched substring
|
||||
//! \~russian Возвращает начальную позицию совпавшей подстроки
|
||||
//! \~english \param index Capture group index (0 for entire match)
|
||||
//! \~russian \param index Индекс группы захвата (0 для полного совпадения)
|
||||
//! \~english Returns the start position of the capture at \a index.
|
||||
//! \~russian Возвращает начальную позицию захвата по \a index.
|
||||
int matchedStart(int index = 0) const;
|
||||
|
||||
//! \brief
|
||||
//! \~english Returns length of matched substring
|
||||
//! \~russian Возвращает длину совпавшей подстроки
|
||||
//! \~english \param index Capture group index (0 for entire match)
|
||||
//! \~russian \param index Индекс группы захвата (0 для полного совпадения)
|
||||
//! \~english Returns the size of the capture at \a index.
|
||||
//! \~russian Возвращает длину захвата по \a index.
|
||||
int matchedSize(int index = 0) const;
|
||||
|
||||
|
||||
//! \brief
|
||||
//! \~english Returns matched substring by group name
|
||||
//! \~russian Возвращает совпавшую подстроку по имени группы
|
||||
//! \~english \param gname Capture group name
|
||||
//! \~russian \param gname Имя группы захвата
|
||||
//! \~english Returns the captured substring of named group \a gname.
|
||||
//! \~russian Возвращает захваченную подстроку именованной группы \a gname.
|
||||
PIString matchedString(const PIString & gname) const;
|
||||
|
||||
//! \brief
|
||||
//! \~english Returns start position of named capture group
|
||||
//! \~russian Возвращает начальную позицию именованной группы захвата
|
||||
//! \~english \param gname Capture group name
|
||||
//! \~russian \param gname Имя группы захвата
|
||||
//! \~english Returns the start position of named group \a gname.
|
||||
//! \~russian Возвращает начальную позицию именованной группы \a gname.
|
||||
int matchedStart(const PIString & gname) const;
|
||||
|
||||
//! \brief
|
||||
//! \~english Returns length of named capture group match
|
||||
//! \~russian Возвращает длину совпадения именованной группы захвата
|
||||
//! \~english \param gname Capture group name
|
||||
//! \~russian \param gname Имя группы захвата
|
||||
//! \~english Returns the size of the named group \a gname.
|
||||
//! \~russian Возвращает длину именованной группы \a gname.
|
||||
int matchedSize(const PIString & gname) const;
|
||||
|
||||
//! \~english Move constructor.
|
||||
//! \~russian Перемещающий конструктор.
|
||||
Matcher(Matcher &&) = default;
|
||||
|
||||
private:
|
||||
@@ -183,141 +147,91 @@ public:
|
||||
};
|
||||
|
||||
|
||||
//! \brief
|
||||
//! \~english Returns regular expression pattern
|
||||
//! \~russian Возвращает шаблон регулярного выражения
|
||||
//! \~english Returns the stored pattern.
|
||||
//! \~russian Возвращает сохраненный шаблон.
|
||||
PIString pattern() const { return pat_; }
|
||||
|
||||
//! \brief
|
||||
//! \~english Returns regular expression options
|
||||
//! \~russian Возвращает опции регулярного выражения
|
||||
//! \~english Returns the stored options.
|
||||
//! \~russian Возвращает сохраненные опции.
|
||||
Options options() const { return opt_; }
|
||||
|
||||
|
||||
//! \brief
|
||||
//! \~english Sets regular expression pattern
|
||||
//! \~russian Устанавливает шаблон регулярного выражения
|
||||
//! \~english \param pattern New pattern
|
||||
//! \~russian \param pattern Новый шаблон
|
||||
//! \~english Replaces the pattern and keeps current options.
|
||||
//! \~russian Заменяет шаблон и сохраняет текущие опции.
|
||||
void setPattern(const PIString & pattern);
|
||||
|
||||
//! \brief
|
||||
//! \~english Sets regular expression pattern and options
|
||||
//! \~russian Устанавливает шаблон и опции регулярного выражения
|
||||
//! \~english \param pattern New pattern
|
||||
//! \~russian \param pattern Новый шаблон
|
||||
//! \~english \param opt New options
|
||||
//! \~russian \param opt Новые опции
|
||||
//! \~english Replaces the pattern and options.
|
||||
//! \~russian Заменяет шаблон и опции.
|
||||
void setPattern(const PIString & pattern, Options opt);
|
||||
|
||||
|
||||
//! \brief
|
||||
//! \~english Returns true if regular expression is valid
|
||||
//! \~russian Возвращает true, если регулярное выражение валидно
|
||||
//! \~english Returns \c true when the compiled pattern is valid.
|
||||
//! \~russian Возвращает \c true, если скомпилированный шаблон корректен.
|
||||
bool isValid() const;
|
||||
|
||||
//! \brief
|
||||
//! \~english Returns true if regular expression is not valid
|
||||
//! \~russian Возвращает true, если регулярное выражение невалидно
|
||||
//! \~english Returns \c true when the pattern is invalid.
|
||||
//! \~russian Возвращает \c true, если шаблон некорректен.
|
||||
bool isNotValid() const { return !isValid(); }
|
||||
|
||||
|
||||
//! \brief
|
||||
//! \~english Returns error description if pattern is invalid
|
||||
//! \~russian Возвращает описание ошибки, если шаблон невалиден
|
||||
//! \~english Returns the compilation error text for an invalid pattern.
|
||||
//! \~russian Возвращает текст ошибки компиляции для некорректного шаблона.
|
||||
PIString errorString() const;
|
||||
|
||||
//! \brief
|
||||
//! \~english Returns position of error in pattern
|
||||
//! \~russian Возвращает позицию ошибки в шаблоне
|
||||
//! \~english Returns the error position inside the pattern.
|
||||
//! \~russian Возвращает позицию ошибки внутри шаблона.
|
||||
int errorPosition() const;
|
||||
|
||||
|
||||
//! \~english Gets the number of capture groups in the pattern
|
||||
//! \~russian Возвращает количество групп захвата в шаблоне
|
||||
//! \~english Returns the number of capture groups in the pattern.
|
||||
//! \~russian Возвращает количество групп захвата в шаблоне.
|
||||
int captureGroupsCount() const;
|
||||
|
||||
//! \~english Gets the list of named capture groups
|
||||
//! \~russian Возвращает список именованных групп захвата
|
||||
//! \~english Returns the names of all named capture groups.
|
||||
//! \~russian Возвращает имена всех именованных групп захвата.
|
||||
PIStringList captureGroupNames() const;
|
||||
|
||||
//! \~english Gets the name of capture group by index
|
||||
//! \~russian Возвращает имя группы захвата по индексу
|
||||
//! \~english \param index Group index
|
||||
//! \~russian \param index Индекс группы
|
||||
//! \~english Returns the capture group name by index.
|
||||
//! \~russian Возвращает имя группы захвата по индексу.
|
||||
PIString captureGroupName(int index) const;
|
||||
|
||||
//! \~english Gets the index of named capture group
|
||||
//! \~russian Возвращает индекс именованной группы захвата
|
||||
//! \~english \param gname Group name
|
||||
//! \~russian \param gname Имя группы
|
||||
//! \~english Returns the index of named capture group `gname`.
|
||||
//! \~russian Возвращает индекс именованной группы захвата `gname`.
|
||||
int captureGroupIndex(const PIString & gname) const;
|
||||
|
||||
|
||||
//! \~english Matches regular expression against deep copy of subject string
|
||||
//! \~russian Сопоставляет регулярное выражение с внутренней копией строки
|
||||
//! \~english \param subject String to match against
|
||||
//! \~russian \param subject Строка для сопоставления
|
||||
//! \~english \param offset Starting position for matching
|
||||
//! \~russian \param offset Начальная позиция для сопоставления
|
||||
//! \~english Matches against an internal copy of \a subject.
|
||||
//! \~russian Выполняет сопоставление по внутренней копии \a subject.
|
||||
Matcher match(const PIString & subject, size_t offset = 0) const;
|
||||
|
||||
//! \~english Matches regular expression against subject string
|
||||
//! \~russian Сопоставляет регулярное выражение со строкой
|
||||
//! \~english \param subject String to match against
|
||||
//! \~russian \param subject Строка для сопоставления
|
||||
//! \~english \param offset Starting position for matching
|
||||
//! \~russian \param offset Начальная позиция для сопоставления
|
||||
//! \~english Matches against \a subject by reference.
|
||||
//! \~russian Выполняет сопоставление со \a subject по ссылке.
|
||||
Matcher match(PIString & subject, size_t offset = 0) const;
|
||||
|
||||
//! \~english Matches regular expression against subject string
|
||||
//! \~russian Сопоставляет регулярное выражение со строкой
|
||||
//! \~english \param subject String to match against
|
||||
//! \~russian \param subject Строка для сопоставления
|
||||
//! \~english \param offset Starting position for matching
|
||||
//! \~russian \param offset Начальная позиция для сопоставления
|
||||
//! \~english Matches against an rvalue \a subject.
|
||||
//! \~russian Выполняет сопоставление с временной строкой \a subject.
|
||||
Matcher match(PIString && subject, size_t offset = 0) const;
|
||||
|
||||
|
||||
//! \~english Prepere match regular expression against deep copy of subject string
|
||||
//! \~russian Подготавливает сопоставление регулярного выражения с внутренней копией строки
|
||||
//! \~english \param subject String to match against
|
||||
//! \~russian \param subject Строка для сопоставления
|
||||
//! \~english \param offset Starting position for matching
|
||||
//! \~russian \param offset Начальная позиция для сопоставления
|
||||
//! \~english Prepares an iterator-style matcher over an internal copy of \a subject.
|
||||
//! \~russian Подготавливает итератор сопоставлений по внутренней копии \a subject.
|
||||
Matcher matchIterator(const PIString & subject, size_t offset = 0) const;
|
||||
|
||||
//! \~english Prepere match regular expression against subject string
|
||||
//! \~russian Подготавливает сопоставление регулярного выражения со строкой
|
||||
//! \~english \param subject String to match against
|
||||
//! \~russian \param subject Строка для сопоставления
|
||||
//! \~english \param offset Starting position for matching
|
||||
//! \~russian \param offset Начальная позиция для сопоставления
|
||||
//! \~english Prepares an iterator-style matcher over \a subject.
|
||||
//! \~russian Подготавливает итератор сопоставлений по \a subject.
|
||||
Matcher matchIterator(PIString & subject, size_t offset = 0) const;
|
||||
|
||||
//! \~english Prepere match regular expression against subject string
|
||||
//! \~russian Подготавливает сопоставление регулярного выражения со строкой
|
||||
//! \~english \param subject String to match against
|
||||
//! \~russian \param subject Строка для сопоставления
|
||||
//! \~english \param offset Starting position for matching
|
||||
//! \~russian \param offset Начальная позиция для сопоставления
|
||||
//! \~english Prepares an iterator-style matcher over an rvalue \a subject.
|
||||
//! \~russian Подготавливает итератор сопоставлений по временной строке \a subject.
|
||||
Matcher matchIterator(PIString && subject, size_t offset = 0) const;
|
||||
|
||||
|
||||
//! \~english Creates regular expression from glob pattern
|
||||
//! \~russian Создает регулярное выражение из glob-шаблона
|
||||
//! \~english \param pattern Glob pattern
|
||||
//! \~russian \param pattern Glob-шаблон
|
||||
//! \~english \param opt Matching options
|
||||
//! \~russian \param opt Опции сопоставления
|
||||
//! \~english Builds a regular expression from a glob pattern.
|
||||
//! \~russian Создает регулярное выражение из glob-шаблона.
|
||||
static PIRegularExpression fromGlob(const PIString & pattern, Options opt = None);
|
||||
|
||||
//! \~english Creates regular expression from POSIX pattern
|
||||
//! \~russian Создает регулярное выражение из POSIX-шаблона
|
||||
//! \~english \param pattern POSIX pattern
|
||||
//! \~russian \param pattern POSIX-шаблон
|
||||
//! \~english \param opt Matching options
|
||||
//! \~russian \param opt Опции сопоставления
|
||||
//! \~english Builds a regular expression from a POSIX pattern.
|
||||
//! \~russian Создает регулярное выражение из POSIX-шаблона.
|
||||
static PIRegularExpression fromPOSIX(const PIString & pattern, Options opt = None);
|
||||
|
||||
private:
|
||||
|
||||
Reference in New Issue
Block a user