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 + -
显示快捷键?