include/boost/regex/v5/regex_replace.hpp
96.0% Lines (24/25)
100.0% List of functions (12/12)
Functions (12)
Function
Calls
Lines
Blocks
boost::re_detail_600::string_out_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > boost::regex_replace<boost::re_detail_600::string_out_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::c_regex_traits<char>, char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(boost::re_detail_600::string_out_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::basic_regex<char, boost::c_regex_traits<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::regex_constants::_match_flags)
:32
1836x
100.0%
100.0%
boost::re_detail_600::string_out_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > boost::regex_replace<boost::re_detail_600::string_out_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::cpp_regex_traits<char>, char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(boost::re_detail_600::string_out_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::basic_regex<char, boost::cpp_regex_traits<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::regex_constants::_match_flags)
:32
1836x
100.0%
100.0%
boost::re_detail_600::string_out_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > boost::regex_replace<boost::re_detail_600::string_out_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::regex_traits<char, boost::cpp_regex_traits<char> >, char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(boost::re_detail_600::string_out_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::regex_constants::_match_flags)
:32
14x
84.2%
73.0%
boost::re_detail_600::string_out_iterator<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > boost::regex_replace<boost::re_detail_600::string_out_iterator<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, __gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, boost::c_regex_traits<wchar_t>, wchar_t, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >(boost::re_detail_600::string_out_iterator<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, __gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, __gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, boost::basic_regex<wchar_t, boost::c_regex_traits<wchar_t> > const&, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, boost::regex_constants::_match_flags)
:32
1836x
100.0%
100.0%
boost::re_detail_600::string_out_iterator<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > boost::regex_replace<boost::re_detail_600::string_out_iterator<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, __gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, boost::cpp_regex_traits<wchar_t>, wchar_t, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >(boost::re_detail_600::string_out_iterator<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, __gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, __gnu_cxx::__normal_iterator<wchar_t const*, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, boost::basic_regex<wchar_t, boost::cpp_regex_traits<wchar_t> > const&, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, boost::regex_constants::_match_flags)
:32
1836x
100.0%
100.0%
std::ostream_iterator<char, char, std::char_traits<char> > boost::regex_replace<std::ostream_iterator<char, char, std::char_traits<char> >, __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::regex_traits<char, boost::cpp_regex_traits<char> >, char, char const*>(std::ostream_iterator<char, char, std::char_traits<char> >, __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, char const*, boost::regex_constants::_match_flags)
:32
4x
84.2%
66.0%
std::ostream_iterator<char, char, std::char_traits<char> > boost::regex_replace<std::ostream_iterator<char, char, std::char_traits<char> >, __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::regex_traits<char, boost::cpp_regex_traits<char> >, char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::ostream_iterator<char, char, std::char_traits<char> >, __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::regex_constants::_match_flags)
:32
1x
84.2%
64.0%
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::regex_replace<boost::c_regex_traits<char>, char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, boost::basic_regex<char, boost::c_regex_traits<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::regex_constants::_match_flags)
:66
1683x
83.3%
69.0%
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::regex_replace<boost::cpp_regex_traits<char>, char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, boost::basic_regex<char, boost::cpp_regex_traits<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::regex_constants::_match_flags)
:66
1683x
83.3%
69.0%
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > boost::regex_replace<boost::regex_traits<char, boost::cpp_regex_traits<char> >, char, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::regex_constants::_match_flags)
:66
14x
83.3%
69.0%
std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > boost::regex_replace<boost::c_regex_traits<wchar_t>, wchar_t, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >(std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, boost::basic_regex<wchar_t, boost::c_regex_traits<wchar_t> > const&, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, boost::regex_constants::_match_flags)
:66
1683x
83.3%
69.0%
std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > boost::regex_replace<boost::cpp_regex_traits<wchar_t>, wchar_t, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >(std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, boost::basic_regex<wchar_t, boost::cpp_regex_traits<wchar_t> > const&, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >, boost::regex_constants::_match_flags)
:66
1683x
83.3%
69.0%
| Line | TLA | Hits | Source Code |
|---|---|---|---|
| 1 | /* | ||
| 2 | * | ||
| 3 | * Copyright (c) 1998-2009 | ||
| 4 | * John Maddock | ||
| 5 | * | ||
| 6 | * Use, modification and distribution are subject to the | ||
| 7 | * Boost Software License, Version 1.0. (See accompanying file | ||
| 8 | * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | ||
| 9 | * | ||
| 10 | */ | ||
| 11 | |||
| 12 | /* | ||
| 13 | * LOCATION: see http://www.boost.org for most recent version. | ||
| 14 | * FILE regex_format.hpp | ||
| 15 | * VERSION see <boost/version.hpp> | ||
| 16 | * DESCRIPTION: Provides formatting output routines for search and replace | ||
| 17 | * operations. Note this is an internal header file included | ||
| 18 | * by regex.hpp, do not include on its own. | ||
| 19 | */ | ||
| 20 | |||
| 21 | #ifndef BOOST_REGEX_V5_REGEX_REPLACE_HPP | ||
| 22 | #define BOOST_REGEX_V5_REGEX_REPLACE_HPP | ||
| 23 | |||
| 24 | |||
| 25 | #include <boost/regex/v5/basic_regex.hpp> | ||
| 26 | #include <boost/regex/v5/match_flags.hpp> | ||
| 27 | #include <boost/regex/v5/regex_iterator.hpp> | ||
| 28 | |||
| 29 | namespace boost{ | ||
| 30 | |||
| 31 | BOOST_REGEX_MODULE_EXPORT template <class OutputIterator, class BidirectionalIterator, class traits, class charT, class Formatter> | ||
| 32 | 7363x | OutputIterator regex_replace(OutputIterator out, | |
| 33 | BidirectionalIterator first, | ||
| 34 | BidirectionalIterator last, | ||
| 35 | const basic_regex<charT, traits>& e, | ||
| 36 | Formatter fmt, | ||
| 37 | match_flag_type flags = match_default) | ||
| 38 | { | ||
| 39 | 7363x | regex_iterator<BidirectionalIterator, charT, traits> i(first, last, e, flags); | |
| 40 | 7363x | regex_iterator<BidirectionalIterator, charT, traits> j; | |
| 41 | 7363x | if(i == j) | |
| 42 | { | ||
| 43 | 96x | if(!(flags & regex_constants::format_no_copy)) | |
| 44 | 48x | out = BOOST_REGEX_DETAIL_NS::copy(first, last, out); | |
| 45 | } | ||
| 46 | else | ||
| 47 | { | ||
| 48 | 7267x | BidirectionalIterator last_m(first); | |
| 49 | 20576x | while(i != j) | |
| 50 | { | ||
| 51 | 13501x | if(!(flags & regex_constants::format_no_copy)) | |
| 52 | 8461x | out = BOOST_REGEX_DETAIL_NS::copy(i->prefix().first, i->prefix().second, out); | |
| 53 | 13501x | out = i->format(out, fmt, flags, e); | |
| 54 | 13501x | last_m = (*i)[0].second; | |
| 55 | 13501x | if(flags & regex_constants::format_first_only) | |
| 56 | 192x | break; | |
| 57 | 13309x | ++i; | |
| 58 | } | ||
| 59 | 7267x | if(!(flags & regex_constants::format_no_copy)) | |
| 60 | 2563x | out = BOOST_REGEX_DETAIL_NS::copy(last_m, last, out); | |
| 61 | } | ||
| 62 | 7980x | return out; | |
| 63 | 7363x | } | |
| 64 | |||
| 65 | BOOST_REGEX_MODULE_EXPORT template <class traits, class charT, class Formatter> | ||
| 66 | 7358x | std::basic_string<charT> regex_replace(const std::basic_string<charT>& s, | |
| 67 | const basic_regex<charT, traits>& e, | ||
| 68 | Formatter fmt, | ||
| 69 | match_flag_type flags = match_default) | ||
| 70 | { | ||
| 71 | 7358x | std::basic_string<charT> result; | |
| 72 | 7358x | BOOST_REGEX_DETAIL_NS::string_out_iterator<std::basic_string<charT> > i(result); | |
| 73 | 7358x | regex_replace(i, s.begin(), s.end(), e, fmt, flags); | |
| 74 | 14104x | return result; | |
| 75 | ✗ | } | |
| 76 | |||
| 77 | } // namespace boost | ||
| 78 | |||
| 79 | #endif // BOOST_REGEX_V5_REGEX_REPLACE_HPP | ||
| 80 | |||
| 81 | |||
| 82 |