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> > regex_finder(const basic_regex<CharT,RegexTraitsT> & Rx,match_flag_type MatchFlags=match_default)46 regex_finder( 47 const basic_regex<CharT, RegexTraitsT>& Rx, 48 match_flag_type MatchFlags=match_default ) 49 { 50 return detail:: 51 find_regexF< 52 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 > > regex_formatter(const std::basic_string<CharT,TraitsT,AllocT> & Format,match_flag_type Flags=format_default)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 91