basic_regex.qbk

来自「Boost provides free peer-reviewed portab」· QBK 代码 · 共 668 行 · 第 1/2 页

QBK
668
字号
[/   Copyright 2006-2007 John Maddock.  Distributed under the Boost Software License, Version 1.0.  (See accompanying file LICENSE_1_0.txt or copy at  http://www.boost.org/LICENSE_1_0.txt).][section:basic_regex basic_regex][h4 Synopsis]   #include <boost/regex.hpp>The template class `basic_regex` encapsulates regular expression parsing and compilation. The class takes two template parameters:* `charT`: determines the character type, i.e. either `char` or `wchar_t`; see [link boost_regex.ref.concepts.charT_concept charT concept].* `traits`: determines the behavior of the character type, for example which character class names are recognized. A default traits class is provided: `regex_traits<charT>`.  See also [link boost_regex.ref.concepts.traits_concept traits concept].For ease of use there are two typedefs that define the two standard `basic_regex` instances, unless you want to use custom traits classes or non-standard character types (for example see [link boost_regex.ref.non_std_strings.icu unicode support]), you won't need to use anything other than these:   namespace boost{   template <class charT, class traits = regex_traits<charT>  >   class basic_regex;      typedef basic_regex<char>      regex;   typedef basic_regex<wchar_t>   wregex;   }The definition of `basic_regex` follows: it is based very closely on class `basic_string`, and fulfils the requirements for a constant-container of `charT`.   namespace boost{   template <class  charT, class traits = regex_traits<charT> >   class basic_regex {      public:                // types:      typedef          charT                                value_type;      typedef          implementation-specific              const_iterator;      typedef          const_iterator                       iterator;                       typedef          charT&                               reference;                 typedef          const charT&                         const_reference;                 typedef          std::ptrdiff_t                       difference_type;                       typedef          std::size_t                          size_type;      typedef          regex_constants::``[syntax_option_type]``  flag_type;      typedef typename traits::locale_type                  locale_type;      // constants:      // main option selection:      static const regex_constants::``[syntax_option_type]`` normal                                                             = regex_constants::normal;      static const regex_constants::``[syntax_option_type]`` ECMAScript                                                         = normal;      static const regex_constants::``[syntax_option_type]`` JavaScript                                                         = normal;      static const regex_constants::``[syntax_option_type]`` JScript                                                            = normal;      static const regex_constants::``[syntax_option_type]`` basic                                                              = regex_constants::basic;      static const regex_constants::``[syntax_option_type]`` extended                                                           = regex_constants::extended;      static const regex_constants::``[syntax_option_type]`` awk                                                                = regex_constants::awk;      static const regex_constants::``[syntax_option_type]`` grep                                                               = regex_constants::grep;      static const regex_constants::``[syntax_option_type]`` egrep                                                              = regex_constants::egrep;      static const regex_constants::``[syntax_option_type]`` sed                                                                = basic = regex_constants::sed;      static const regex_constants::``[syntax_option_type]`` perl                                                               = regex_constants::perl;      static const regex_constants::``[syntax_option_type]`` literal                                                            = regex_constants::literal;      // modifiers specific to perl expressions:      static const regex_constants::``[syntax_option_type]`` no_mod_m                                                           = regex_constants::no_mod_m;      static const regex_constants::``[syntax_option_type]`` no_mod_s                                                           = regex_constants::no_mod_s;      static const regex_constants::``[syntax_option_type]`` mod_s                                                              = regex_constants::mod_s;      static const regex_constants::``[syntax_option_type]`` mod_x                                                              = regex_constants::mod_x;      // modifiers specific to POSIX basic expressions:      static const regex_constants::``[syntax_option_type]`` bk_plus_qm                                                         = regex_constants::bk_plus_qm;      static const regex_constants::``[syntax_option_type]`` bk_vbar                                                            = regex_constants::bk_vbar      static const regex_constants::``[syntax_option_type]`` no_char_classes                                                    = regex_constants::no_char_classes      static const regex_constants::``[syntax_option_type]`` no_intervals                                                       = regex_constants::no_intervals      // common modifiers:      static const regex_constants::``[syntax_option_type]`` nosubs                                                             = regex_constants::nosubs;      static const regex_constants::``[syntax_option_type]`` optimize                                                           = regex_constants::optimize;      static const regex_constants::``[syntax_option_type]`` collate                                                            = regex_constants::collate;      static const regex_constants::``[syntax_option_type]`` newline_alt                                                        = regex_constants::newline_alt;      static const regex_constants::``[syntax_option_type]`` no_except                                                          = regex_constants::newline_alt;      // construct/copy/destroy:      explicit ``[link boost_regex.basic_regex.construct1 basic_regex]`` ();      explicit ``[link boost_regex.basic_regex.construct2 basic_regex]``(const  charT* p, flag_type f = regex_constants::normal);      ``[link boost_regex.basic_regex.construct3 basic_regex]``(const charT* p1, const  charT* p2,                   flag_type f = regex_constants::normal);      ``[link boost_regex.basic_regex.construct4 basic_regex]``(const charT* p, size_type len, flag_type  f);      ``[link boost_regex.basic_regex.construct5 basic_regex]``(const basic_regex&);      template <class ST, class SA>      explicit ``[link boost_regex.basic_regex.construct6 basic_regex]``(const basic_string<charT, ST,  SA>& p,                            flag_type f = regex_constants::normal);      template <class InputIterator>      ``[link boost_regex.basic_regex.construct7 basic_regex]``(InputIterator first,  InputIterator last,                   flag_type f = regex_constants::normal);      ~basic_regex();      ``[link boost_regex.basic_regex.opeq1 basic_regex& operator=]``(const basic_regex&);      ``[link boost_regex.basic_regex.opeq2 basic_regex& operator=]`` (const charT* ptr);       template <class ST, class SA>       ``[link boost_regex.basic_regex.opeq3 basic_regex& operator=]`` (const basic_string<charT, ST, SA>& p);      // iterators:       ``[link boost_regex.basic_regex.begin const_iterator begin]``() const;       ``[link boost_regex.basic_regex.end const_iterator end]``() const;      // capacity:       ``[link boost_regex.basic_regex.size size_type size]``() const;       ``[link boost_regex.basic_regex.max_size size_type max_size]``() const;       ``[link boost_regex.basic_regex.empty bool empty]``() const;       ``[link boost_regex.basic_regex.mark_count unsigned mark_count]``()const;       //      // modifiers:       ``[link boost_regex.basic_regex.assign1 basic_regex& assign]``(const basic_regex& that);       ``[link boost_regex.basic_regex.assign2 basic_regex& assign]``(const charT* ptr,                           flag_type f = regex_constants::normal);      ``[link boost_regex.basic_regex.assign3 basic_regex& assign]``(const charT* ptr, unsigned int len, flag_type f);      template <class string_traits, class A>      ``[link boost_regex.basic_regex.assign4 basic_regex& assign]``(const basic_string<charT, string_traits, A>& s,                          flag_type f = regex_constants::normal);      template <class InputIterator>      ``[link boost_regex.basic_regex.assign5 basic_regex& assign]``(InputIterator first, InputIterator last,                          flag_type f = regex_constants::normal);      // const operations:      ``[link boost_regex.basic_regex.flags flag_type flags]``() const;      ``[link boost_regex.basic_regex.status int status]``()const;      ``[link boost_regex.basic_regex.str basic_string<charT> str]``() const;      ``[link boost_regex.basic_regex.compare int compare]``(basic_regex&) const;      // locale:      ``[link boost_regex.basic_regex.imbue locale_type imbue]``(locale_type loc);      ``[link boost_regex.basic_regex.getloc locale_type getloc]``() const;      // swap      ``[link boost_regex.basic_regex.swap void swap]``(basic_regex&) throw();   };   template <class charT, class traits>   ``[link boost_regex.basic_regex.op_eq bool operator ==]`` (const basic_regex<charT, traits>& lhs,                     const basic_regex<charT, traits>& rhs);   template <class charT, class traits>   ``[link boost_regex.basic_regex.op_ne bool operator !=]`` (const basic_regex<charT, traits>& lhs,                     const basic_regex<charT, traits>& rhs);   template <class charT, class traits>   ``[link boost_regex.basic_regex.op_lt bool operator <]`` (const basic_regex<charT, traits>& lhs,                  const basic_regex<charT, traits>& rhs);   template <class charT, class traits>   ``[link boost_regex.basic_regex.op_le bool operator <=]`` (const basic_regex<charT, traits>& lhs,                     const basic_regex<charT, traits>& rhs);   template <class charT, class traits>   ``[link boost_regex.basic_regex.op_ge bool operator >=]`` (const basic_regex<charT, traits>& lhs,                     const basic_regex<charT, traits>& rhs);   template <class charT, class traits>   ``[link boost_regex.basic_regex.op_gt bool operator >]`` (const basic_regex<charT, traits>& lhs,                  const basic_regex<charT, traits>& rhs);   template <class charT, class io_traits, class re_traits>   basic_ostream<charT, io_traits>&      ``[link boost_regex.basic_regex.op_stream operator <<]`` (basic_ostream<charT, io_traits>& os,                  const basic_regex<charT, re_traits>& e);   template <class charT, class traits>   ``[link boost_regex.basic_regex.op_swap void swap]``(basic_regex<charT, traits>& e1,            basic_regex<charT, traits>& e2);   typedef basic_regex<char> regex;   typedef basic_regex<wchar_t> wregex;   } // namespace boost[h4 Description]Class `basic_regex` has the following public members:   // main option selection:   static const regex_constants::``[syntax_option_type]`` normal                                                        = regex_constants::normal;   static const regex_constants::``[syntax_option_type]`` ECMAScript                                                    = normal;   static const regex_constants::``[syntax_option_type]`` JavaScript                                                    = normal;   static const regex_constants::``[syntax_option_type]`` JScript                                                       = normal;   static const regex_constants::``[syntax_option_type]`` basic                                                         = regex_constants::basic;   static const regex_constants::``[syntax_option_type]`` extended                                                      = regex_constants::extended;   static const regex_constants::``[syntax_option_type]`` awk                                                           = regex_constants::awk;   static const regex_constants::``[syntax_option_type]`` grep                                                          = regex_constants::grep;   static const regex_constants::``[syntax_option_type]`` egrep                                                         = regex_constants::egrep;   static const regex_constants::``[syntax_option_type]`` sed                                                           = regex_constants::sed;   static const regex_constants::``[syntax_option_type]`` perl                                                          = regex_constants::perl;   static const regex_constants::``[syntax_option_type]`` literal                                                       = regex_constants::literal;   // modifiers specific to perl expressions:   static const regex_constants::``[syntax_option_type]`` no_mod_m                                                      = regex_constants::no_mod_m;   static const regex_constants::``[syntax_option_type]`` no_mod_s                                                      = regex_constants::no_mod_s;   static const regex_constants::``[syntax_option_type]`` mod_s                                                         = regex_constants::mod_s;   static const regex_constants::``[syntax_option_type]`` mod_x                                                         = regex_constants::mod_x;   // modifiers specific to POSIX basic expressions:   static const regex_constants::``[syntax_option_type]`` bk_plus_qm                                                    = regex_constants::bk_plus_qm;   static const regex_constants::``[syntax_option_type]`` bk_vbar                                                       = regex_constants::bk_vbar   static const regex_constants::``[syntax_option_type]`` no_char_classes                                               = regex_constants::no_char_classes   static const regex_constants::``[syntax_option_type]`` no_intervals                                                  = regex_constants::no_intervals   // common modifiers:   static const regex_constants::``[syntax_option_type]`` nosubs                                                        = regex_constants::nosubs;   static const regex_constants::``[syntax_option_type]`` optimize                                                      = regex_constants::optimize;   static const regex_constants::``[syntax_option_type]`` collate                                                       = regex_constants::collate;   static const regex_constants::``[syntax_option_type]`` newline_alt                                                   = regex_constants::newline_alt;The meaning of these options is documented in the [syntax_option_type]section.The static constant members are provided as synonyms for the constants declared in namespace `boost::regex_constants`; for each constant of type [syntax_option_type] declared in namespace `boost::regex_constants` then a constant with the same name, type and value is declared within the scope of basic_regex.[#boost_regex.basic_regex.construct1]   basic_regex();[*Effects]: Constructs an object of class `basic_regex`. [table basic_regex default construction postconditions[[Element][Value]][[`empty()`][`true`]][[`size()`][`0`]][[`str()`][`basic_string<charT>()`]]][#boost_regex.basic_regex.construct2]   basic_regex(const charT* p, flag_type f = regex_constants::normal);[*Requires]: /p/ shall not be a null pointer.[*Throws]: [bad_expression] if /p/ is not a valid regular expression, unless the flag `no_except` is set in /f/.[*Effects]: Constructs an object of class [basic_regex]; the object's internal finite state machine is constructed from the regular expression contained in the null-terminated string /p/, and interpreted according to the [link boost_regex.ref.syntax_option_type option flags] specified in /f/. [table Postconditions for basic_regex construction[[Element][Value]][[`empty()`][`false`]][[`size()`][`char_traits<charT>::length(p)`]][[`str()`][`basic_string<charT>(p)`]][[`flags()`][['f]]][[`mark_count()`][The number of marked sub-expressions within the expression.]]][#boost_regex.basic_regex.construct3]   basic_regex(const charT* p1, const charT* p2,                flag_type f = regex_constants::normal);[*Requires]: /p1/ and /p2/ are not null pointers, `p1 < p2`.[*Throws]: bad_expression if \[p1,p2) is not a valid regular expression, unless the flag `no_except` is set in /f/.[*Effects]: Constructs an object of class [basic_regex]; the object's internal finite state machine is constructed from the regular expression contained in the sequence of characters \[p1,p2), and interpreted according the [link boost_regex.ref.syntax_option_type option flags] specified in /f/. [table Postconditions for basic_regex construction[[Element][Value]]

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?