regex.ipp
来自「CGAL is a collaborative effort of severa」· IPP 代码 · 共 74 行
IPP
74 行
/*============================================================================= Copyright (c) 2002-2003 Hartmut Kaiser http://spirit.sourceforge.net/ Use, modification and distribution is subject to 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)=============================================================================*/#ifndef BOOST_SPIRIT_REGEX_IPP#define BOOST_SPIRIT_REGEX_IPP///////////////////////////////////////////////////////////////////////////////#include <boost/spirit/core/primitives/impl/primitives.ipp>///////////////////////////////////////////////////////////////////////////////namespace boost { namespace spirit {namespace impl {/////////////////////////////////////////////////////////////////////////////////inline const char* rx_prefix(char) { return "\\A"; }inline const wchar_t* rx_prefix(wchar_t) { return L"\\A"; }/////////////////////////////////////////////////////////////////////////////////// rx_parser class/////////////////////////////////////////////////////////////////////////////////template <typename CharT = char>class rx_parser : public parser<rx_parser<CharT> > {public: typedef std::basic_string<CharT> string_t; typedef rx_parser<CharT> self_t; rx_parser(CharT const *first, CharT const *last) { rxstr = string_t(rx_prefix(CharT())) + string_t(first, last); } rx_parser(CharT const *first) { rxstr = string_t(rx_prefix(CharT())) + string_t(first, impl::get_last(first)); } template <typename ScannerT> typename parser_result<self_t, ScannerT>::type parse(ScannerT const& scan) const { boost::match_results<typename ScannerT::iterator_t> what; boost::regex_search(scan.first, scan.last, what, rxstr, boost::match_default); if (!what[0].matched) return scan.no_match(); scan.first = what[0].second; return scan.create_match(what[0].length(), nil_t(), what[0].first, scan.first); }private: boost::reg_expression<CharT> rxstr; // regular expression to match};} // namespace impl///////////////////////////////////////////////////////////////////////////////}} // namespace boost::spirit#endif // BOOST_SPIRIT_REGEX_IPP
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?