Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

High Level Class RegEx (Deprecated)

Boost , Boost.Regex 5.1.2 , Deprecated Interfaces

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Класс обертки высокого уровня RegEx теперь обесценен и не является частью предложения по стандартизации. Этот тип все еще существует, и существующий код будет продолжать компилироваться, однако следующая документация вряд ли будет дополнительно обновлена.

#include <boost/cregex.hpp>

Класс RegEx обеспечивает высокий уровень упрощенного интерфейса к библиотеке регулярных выражений, этот класс обрабатывает только узкие строки символов, а регулярные выражения всегда следуют «нормальному» синтаксису — то есть тому же, что и синтаксис perl/ECMAScript.

typedef bool (*GrepCallback)(const RegEx& expression);
typedef bool (*GrepFileCallback)(const char* file, const RegEx& expression);
typedef bool (*FindFilesCallback)(const char* file);
class  RegEx
{
public:
   RegEx();
   RegEx(const RegEx& o);
   ~RegEx();
   RegEx(const char* c, bool icase = false);
   explicit RegEx(const std::string& s, bool icase = false);
   RegEx& operator=(const RegEx& o);
   RegEx& operator=(const char* p);
   RegEx& operator=(const std::string& s);
   unsigned int SetExpression(const char* p, bool icase = false);
   unsigned int SetExpression(const std::string& s, bool icase = false);
   std::string Expression()const;
   //
   // now matching operators: 
   // 
   bool Match(const char* p, boost::match_flag_type flags = match_default);
   bool Match(const std::string& s, boost::match_flag_type flags = match_default);
   bool Search(const char* p, boost::match_flag_type flags = match_default);
   bool Search(const std::string& s, boost::match_flag_type flags = match_default);
   unsigned int Grep(GrepCallback cb, const char* p,
                     boost::match_flag_type flags = match_default);
   unsigned int Grep(GrepCallback cb, const std::string& s,
                     boost::match_flag_type flags = match_default);
   unsigned int Grep(std::vector<std::string>& v, const char* p,
                     boost::match_flag_type flags = match_default);
   unsigned int Grep(std::vector<std::string>& v, const std::string& s,
                     boost::match_flag_type flags = match_default);
   unsigned int Grep(std::vector<unsigned int>& v, const char* p,
                     boost::match_flag_type flags = match_default);
   unsigned int Grep(std::vector<unsigned int>& v, const std::string& s,
                     boost::match_flag_type flags = match_default);
   unsigned int GrepFiles(GrepFileCallback cb, const char* files, bool recurse = false,
                          boost::match_flag_type flags = match_default);
   unsigned int GrepFiles(GrepFileCallback cb, const std::string& files,
                          bool recurse = false,
                          boost::match_flag_type flags = match_default);
   unsigned int FindFiles(FindFilesCallback cb, const char* files,
                          bool recurse = false,
                          boost::match_flag_type flags = match_default);
   unsigned int FindFiles(FindFilesCallback cb, const std::string& files,
                          bool recurse = false,
                          boost::match_flag_type flags = match_default);
   std::string Merge(const std::string& in, const std::string& fmt,
                     bool copy = true, boost::match_flag_type flags = match_default);
   std::string Merge(const char* in, const char* fmt, bool copy = true,
                     boost::match_flag_type flags = match_default);
   unsigned Split(std::vector<std::string>& v, std::string& s,
                  boost::match_flag_type flags = match_default,
                  unsigned max_count = ~0);
   // 
   // now operators for returning what matched in more detail: 
   // 
   unsigned int Position(int i = 0)const;
   unsigned int Length(int i = 0)const;
   bool Matched(int i = 0)const;
   unsigned int Line()const;
   unsigned int Marks() const;
   std::string What(int i)const;
   std::string operator[](int i)const ;
   static const unsigned int npos;
};

Функции членов класса RegEx определяются следующим образом:

член

Описание

<RegEx();>

Конструктор по умолчанию создает экземпляр RegEx без какого-либо действительного выражения.

<RegEx(constRegEx&o);>

Конструктор копий, все свойства параметраoкопируются.

<RegEx(constchar*c,bool icase= false);>

Конструирует экземпляр RegEx, устанавливая выражениеc, еслиicaseявляется истинным, то сопоставление нечувствительно к случаю, в противном случае оно чувствительно к случаю.<bad_expression>Ошибка.

<RegEx(conststd::string&s,bool icase= false);>

Конструирует экземпляр RegEx, устанавливая выражениеs, еслиicaseявляется истинным, то сопоставление нечувствительно к случаю, в противном случае оно чувствительно к случаю.<bad_expression>Бросает на провал.

<RegEx& operator=(constRegEx&o);>

Оператор по умолчанию.

<RegEx& operator=(constchar*p);>

Назначение оператора, эквивалентное вызову<SetExpression(p,false)>.<bad_expression>Бросает на провал.

<RegEx& operator=(conststd::string&s);>

Назначение оператора, эквивалентное вызову<SetExpression(s,false)>.<bad_expression>Бросает на провал.

<unsignedint SetExpression(constchar*p,bool icase= false);>

Устанавливает текущее выражение наp, еслиicaseистинно, то сопоставление нечувствительно к случаю, в противном случае оно чувствительно к случаю.<bad_expression>Бросает на провал.

<unsignedint SetExpression(conststd::string&s,bool icase= false);>

Устанавливает текущее выражение наs, еслиicaseистинно, то сопоставление нечувствительно к случаю, в противном случае оно чувствительно к случаю.<bad_expression>Бросает на провал.

<std::stringExpression()const;>

Возвращает копию текущего регулярного выражения.

<boolMatch(const char* p, boost::match_flag_typeflags =match_default);>

Попытки сопоставления текущего выражения с текстомрс использованием флагов матчафлагов— см.<match_flag_type>. Возвращаетистинное, если выражение совпадает со всей входной строкой.

<boolMatch(const std::string& s, boost::match_flag_typeflags =match_default);>

Попытки сопоставить текущее выражение с текстомsс использованием<match_flag_type>флагов. Возвращаетистинное, если выражение совпадает со всей входной строкой.

<boolSearch(const char* p, boost::match_flag_typeflags =match_default);>

Попытки найти соответствие для текущего выражения где-то в текстерс использованием<match_flag_type>флагов. Возвращаетистинное, если матч удался.

<boolSearch(const std::string& s, boost::match_flag_typeflags =match_default);>

Попытки найти соответствие для текущего выражения где-то в текстеsс использованием<match_flag_type>Флаги.истинно, если матч удался.

<unsignedint Grep(GrepCallbackcb,const char* p, boost::match_flag_typeflags =match_default);>

Находит все совпадения текущего выражения в текстерс использованием<match_flag_type>флагов. Для каждого матча найдена функция обратного вызова cb как:<cb(*this);>Если на каком-либо этапе функция обратного вызова возвращаетложную, то операция грэпа прекращается, иначе продолжается до тех пор, пока не будут найдены дальнейшие совпадения. Возвращает количество найденных матчей.

<unsignedint Grep(GrepCallbackcb,const std::string& s, boost::match_flag_typeflags =match_default);>

Находит все совпадения текущего выражения в текстеsс использованием флагов<match_flag_type>. Для каждого матча найдена функция обратного вызова cb как:<cb(*this);>Если на каком-либо этапе функция обратного вызова возвращается ложной, то операция грэпа прекращается, иначе продолжается до тех пор, пока не будут найдены дальнейшие совпадения. Возвращает количество найденных матчей.

<unsignedint Grep(std::vector<std::string>& v, constchar*p,boost::match_flag_type flags= match_default);>

Находит все совпадения текущего выражения в текстеpс использованием флагов<match_flag_type>. Для каждого матча толкает копия того, что соответствовалопротив. Возвращает количество найденных матчей.

<unsignedint Grep(std::vector<std::string>& v, conststd::string&s,boost::match_flag_type flags= match_default);>

Находит все совпадения текущего выражения в текстеsс использованием<match_flag_type>флагов. Для каждого матча толкается копия того, что соответствуетпротив. Возвращает количество найденных матчей.

<unsignedint Grep(std::vector<unsignedint>&v,const char* p, boost::match_flag_typeflags =match_default);>

Находит все совпадения текущего выражения в текстерс использованием<match_flag_type>флагов. Для каждого матча выдвигается стартовый индекс того, что соответствовалопротив. Возвращает количество найденных матчей.

<unsignedint Grep(std::vector<unsignedint>&v,const std::string& s, boost::match_flag_typeflags =match_default);>

Находит все совпадения текущего выражения в текстеsс использованием<match_flag_type>флагов. Для каждого матча выдвигается стартовый индекс того, что соответствовалопротив. Возвращает количество найденных матчей.

<unsignedint GrepFiles(GrepFileCallbackcb,const char* files, boolrecurse =false,boost::match_flag_type flags= match_default);>

Находит все совпадения текущего выражения в файлахс помощью<match_flag_type>флагов. Для каждого матча выполняется функция обратного вызова cb. Если обратный вызов возвращается ложным, алгоритм возвращается без учета дальнейших совпадений в текущем файле или любых других файлах.

Параметрфайловможет включать символы «*» и «?», если параметр повторяется, то выполняется поиск подкаталогов для сопоставления имен файлов.

Возвращает общее количество найденных матчей.

Может выбросить исключение, полученное из<std::runtime_error>, если файл io не работает.

<unsignedint GrepFiles(GrepFileCallbackcb,const std::string& files, boolrecurse =false,boost::match_flag_type flags= match_default);>

Находит все совпадения текущего выражения в файлахс использованием флагов<match_flag_type>. Для каждого матча вызывается функция обратного вызова cb.

Если обратный вызов возвращается ложным, алгоритм возвращается без учета дальнейших совпадений в текущем файле или любых других файлах.

Параметрфайловможет включать символы «*» и «?», если параметр повторяется, то выполняется поиск подкаталогов для сопоставления имен файлов.

Возвращает общее количество найденных матчей.

Может выбросить исключение, полученное из<std::runtime_error>, если файл io не работает.

<unsignedint FindFiles(FindFilesCallbackcb,const char* files, boolrecurse =false,boost::match_flag_type flags= match_default);>

Поиск файлов, чтобы найти все те, которые содержат по крайней мере одно соответствие текущего выражения, используя<match_flag_type>флаги. Для каждого соответствующего файла вызывается функция обратного вызова cb. Если обратный вызов возвращается ложным, алгоритм возвращается без рассмотрения каких-либо дополнительных файлов.

Параметрфайловможет включать в себя символы «*» и «?», если параметрповторенияверен, то поиск подкаталогов для сопоставления имен файлов.

Возвращает общее количество найденных файлов.

Может сделать исключение из<std::runtime_error>, если файл io не работает.

<unsignedint FindFiles(FindFilesCallbackcb,const std::string& files, boolrecurse =false,boost::match_flag_type flags= match_default);>

Поиск файлов, чтобы найти все те, которые содержат по меньшей мере одно соответствие текущего выражения, используя<match_flag_type>флаги. Для каждого соответствующего файла вызывается функция обратного вызова cb.

Если обратный вызов возвращается ложным, алгоритм возвращается без рассмотрения каких-либо дополнительных файлов.

Параметрфайловможет включать символы «*» и «?», если параметрповторенияверен, то поиск подкаталогов для сопоставления имен файлов.

Возвращает общее количество найденных файлов.

Может выбросить исключение из<std::runtime_error>, если файл io не работает.

<std::stringMerge(const std::string& in, conststd::string&fmt,bool copy= true, boost::match_flag_typeflags =match_default);>

Выполняет операцию поиска и замены: выполняет поиск по строкевдля всех вхождений текущего выражения, для каждого вхождения заменяет соответствие со строкой форматаfmt. Используетфлагидля определения того, что совпадает, и как следует обрабатывать строку формата. Есликопияверна, то все непревзойденные участки ввода копируются без изменений на выход, если установлен флагформат_first_only, то заменяется только первое появление найденного шаблона. Возвращает новую струну. См. такжеформат струнного синтаксисаи<match_flag_type>.

<std::stringMerge(const char* in, constchar*fmt,bool copy= true, boost::match_flag_typeflags =match_default);>

Выполняет операцию поиска и замены: выполняет поиск по строкевдля всех вхождений текущего выражения, для каждого вхождения заменяет соответствие со строкой форматаfmt. Используетфлагидля определения того, что совпадает, и как следует обрабатывать строку формата. Есликопияверна, то все непревзойденные участки ввода копируются без изменений на выход, если установлен флагформат_first_only, то заменяется только первое появление найденного шаблона. Возвращает новую струну. См. такжеформат струнного синтаксисаи<match_flag_type>.

<unsignedSplit(std::vector<std::string>&v,std::string&s,boost::match_flag_type flags= match_default, unsignedmax_count =~0);>

Разделяет входную строку и толкает каждую на вектор. Если выражение не содержит помеченных подвыражений, то для каждого участка ввода выводится одна строка, которая не соответствует выражению. Если выражение действительно содержит отмеченные суб-выражения, то выводит одну строку для каждого отмеченного суб-выражения каждый раз, когда происходит совпадение. Выходы не болееmax_countстрок. Перед возвращением удаляет из входной строкиsвесь вход, который был обработан (вся строка, еслиmax_countне была достигнута). Возвращает количество струн, нажатых на вектор.

<unsignedint Position(inti =0)const;>

Возвращает положение того, что соответствует подвыражениюi. Если<i= 0>, то возвращается позиция всего матча. Возвращается<RegEx::npos>, если поставленный индекс недействителен, или если указанное подвыражение не участвовало в матче.

<unsignedint Length(inti =0)const;>

Возвращает длину того, что соответствует подвыражению i. Если<i= 0>, то возвращается длина всего матча. Возвращается<RegEx::npos>, если поставленный индекс недействителен, или если указанное подвыражение не участвовало в матче.

<boolMatched(int i= 0)const;>

Возвращает истинное, если подвыражениеiбыло сопоставлено, ложное в противном случае.

<unsignedint Line()const;>

Возвращает линию, на которой произошел матч, индексы начинаются от 1 не нуля, если матч не произошел, то возвращается<RegEx::npos>.

<unsignedint Marks() const;>

Возвращает число отмеченных подвыражений, содержащихся в выражении. Обратите внимание, что это включает в себя весь матч (субэкспрессия ноль), поэтому возвращаемое значение всегда >= 1.

<std::stringWhat(int i)const;>

Возвращает копию подвыраженияи. Если<i= 0>, то возвращается копия всего матча. Возвращает нулевую строку, если индекс недействителен или если указанное подвыражение не участвовало в матче.

<std::stringoperator[](int i)const;>

Возвращение<what(i);>Можно использовать для упрощения доступа к подэкспрессионным спичкам и сделать использование более перлоподобным.


PrevUpHomeNext

Статья High Level Class RegEx (Deprecated) раздела Boost.Regex 5.1.2 Deprecated Interfaces может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Deprecated Interfaces ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 18:54:02/0.008591890335083/1