Line data Source code
1 : // Boost string_algo library regex_find_format.hpp header file ---------------------------// 2 : 3 : // Copyright Pavol Droba 2002-2003. 4 : // 5 : // Distributed under the Boost Software License, Version 1.0. 6 : // (See accompanying file LICENSE_1_0.txt or copy at 7 : // http://www.boost.org/LICENSE_1_0.txt) 8 : 9 : // See http://www.boost.org/ for updates, documentation, and revision history. 10 : 11 : #ifndef BOOST_STRING_REGEX_FIND_FORMAT_HPP 12 : #define BOOST_STRING_REGEX_FIND_FORMAT_HPP 13 : 14 : #include <boost/algorithm/string/config.hpp> 15 : #include <boost/regex.hpp> 16 : #include <boost/algorithm/string/detail/finder_regex.hpp> 17 : #include <boost/algorithm/string/detail/formatter_regex.hpp> 18 : 19 : /*! \file 20 : Defines the \c regex_finder and \c regex_formatter generators. These two functors 21 : are designed to work together. \c regex_formatter uses additional information 22 : about a match contained in the regex_finder search result. 23 : */ 24 : 25 : namespace boost { 26 : namespace algorithm { 27 : 28 : // regex_finder -----------------------------------------------// 29 : 30 : //! "Regex" finder 31 : /*! 32 : Construct the \c regex_finder. Finder uses the regex engine to search 33 : for a match. 34 : Result is given in \c regex_search_result. This is an extension 35 : of the iterator_range. In addition it contains match results 36 : from the \c regex_search algorithm. 37 : 38 : \param Rx A regular expression 39 : \param MatchFlags Regex search options 40 : \return An instance of the \c regex_finder object 41 : */ 42 : template< 43 : typename CharT, 44 : typename RegexTraitsT> 45 : inline detail::find_regexF< basic_regex<CharT, RegexTraitsT> > 46 0 : regex_finder( 47 : const basic_regex<CharT, RegexTraitsT>& Rx, 48 : match_flag_type MatchFlags=match_default ) 49 : { 50 : return detail:: 51 : find_regexF< 52 0 : basic_regex<CharT, RegexTraitsT> >( Rx, MatchFlags ); 53 : } 54 : 55 : // regex_formater ---------------------------------------------// 56 : 57 : //! Regex formatter 58 : /*! 59 : Construct the \c regex_formatter. Regex formatter uses the regex engine to 60 : format a match found by the \c regex_finder. 61 : This formatted it designed to closely cooperate with \c regex_finder. 62 : 63 : \param Format Regex format definition 64 : \param Flags Format flags 65 : \return An instance of the \c regex_formatter functor 66 : */ 67 : template< 68 : typename CharT, 69 : typename TraitsT, typename AllocT > 70 : inline detail::regex_formatF< std::basic_string< CharT, TraitsT, AllocT > > 71 : regex_formatter( 72 : const std::basic_string<CharT, TraitsT, AllocT>& Format, 73 : match_flag_type Flags=format_default ) 74 : { 75 : return 76 : detail::regex_formatF< std::basic_string<CharT, TraitsT, AllocT> >( 77 : Format, 78 : Flags ); 79 : } 80 : 81 : } // namespace algorithm 82 : 83 : // pull the names to the boost namespace 84 : using algorithm::regex_finder; 85 : using algorithm::regex_formatter; 86 : 87 : } // namespace boost 88 : 89 : 90 : #endif // BOOST_STRING_REGEX_FIND_FORMAT_HPP