regex_replace.hpp
来自「Boost provides free peer-reviewed portab」· HPP 代码 · 共 123 行
HPP
123 行
/* * * Copyright (c) 1998-2002 * John Maddock * * Use, modification and distribution are 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) * */ /* * LOCATION: see http://www.boost.org for most recent version. * FILE regex_format.hpp * VERSION see <boost/version.hpp> * DESCRIPTION: Provides formatting output routines for search and replace * operations. Note this is an internal header file included * by regex.hpp, do not include on its own. */#ifndef BOOST_REGEX_V4_REGEX_REPLACE_HPP#define BOOST_REGEX_V4_REGEX_REPLACE_HPPnamespace boost{#ifdef BOOST_MSVC#pragma warning(push)#pragma warning(disable: 4103)#endif#ifdef BOOST_HAS_ABI_HEADERS# include BOOST_ABI_PREFIX#endif#ifdef BOOST_MSVC#pragma warning(pop)#endiftemplate <class OutputIterator, class BidirectionalIterator, class traits, class charT>OutputIterator regex_replace(OutputIterator out, BidirectionalIterator first, BidirectionalIterator last, const basic_regex<charT, traits>& e, const charT* fmt, match_flag_type flags = match_default){ regex_iterator<BidirectionalIterator, charT, traits> i(first, last, e, flags); regex_iterator<BidirectionalIterator, charT, traits> j; if(i == j) { if(!(flags & regex_constants::format_no_copy)) out = re_detail::copy(first, last, out); } else { BidirectionalIterator last_m(first); while(i != j) { if(!(flags & regex_constants::format_no_copy)) out = re_detail::copy(i->prefix().first, i->prefix().second, out); out = i->format(out, fmt, flags, e); last_m = (*i)[0].second; if(flags & regex_constants::format_first_only) break; ++i; } if(!(flags & regex_constants::format_no_copy)) out = re_detail::copy(last_m, last, out); } return out;}template <class OutputIterator, class Iterator, class traits, class charT>inline OutputIterator regex_replace(OutputIterator out, Iterator first, Iterator last, const basic_regex<charT, traits>& e, const std::basic_string<charT>& fmt, match_flag_type flags = match_default){ return regex_replace(out, first, last, e, fmt.c_str(), flags);}template <class traits, class charT>std::basic_string<charT> regex_replace(const std::basic_string<charT>& s, const basic_regex<charT, traits>& e, const charT* fmt, match_flag_type flags = match_default){ std::basic_string<charT> result; re_detail::string_out_iterator<std::basic_string<charT> > i(result); regex_replace(i, s.begin(), s.end(), e, fmt, flags); return result;}template <class traits, class charT>std::basic_string<charT> regex_replace(const std::basic_string<charT>& s, const basic_regex<charT, traits>& e, const std::basic_string<charT>& fmt, match_flag_type flags = match_default){ std::basic_string<charT> result; re_detail::string_out_iterator<std::basic_string<charT> > i(result); regex_replace(i, s.begin(), s.end(), e, fmt.c_str(), flags); return result;}#ifdef BOOST_MSVC#pragma warning(push)#pragma warning(disable: 4103)#endif#ifdef BOOST_HAS_ABI_HEADERS# include BOOST_ABI_SUFFIX#endif#ifdef BOOST_MSVC#pragma warning(pop)#endif} // namespace boost#endif // BOOST_REGEX_V4_REGEX_REPLACE_HPP
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?