10#include <userver/utils/fast_pimpl.hpp>
12USERVER_NAMESPACE_BEGIN
53 explicit regex(std::string_view pattern);
56 regex(regex&&)
noexcept;
57 regex& operator=(
const regex&);
58 regex& operator=(regex&&)
noexcept;
69 std::string
str()
const;
73 utils::FastPimpl<Impl, 16, 8> impl_;
75 friend class match_results;
76 friend bool regex_match(std::string_view str,
const regex& pattern);
77 friend bool regex_match(std::string_view str, match_results& m,
const regex& pattern);
78 friend bool regex_search(std::string_view str,
const regex& pattern);
79 friend bool regex_search(std::string_view str, match_results& m,
const regex& pattern);
80 friend std::string
regex_replace(std::string_view str,
const regex& pattern, std::string_view repl);
81 friend std::string
regex_replace(std::string_view str,
const regex& pattern, Re2Replacement repl);
99class match_results
final {
105 match_results(
const match_results&);
106 match_results& operator=(
const match_results&);
114 std::string_view
operator[](std::size_t sub)
const;
123 std::size_t
length(std::size_t sub)
const;
133 utils::FastPimpl<Impl, 120, 8> impl_;
135 friend bool regex_match(std::string_view str,
const regex& pattern);
136 friend bool regex_match(std::string_view str, match_results& m,
const regex& pattern);
138 friend bool regex_search(std::string_view str, match_results& m,
const regex& pattern);
139 friend std::string
regex_replace(std::string_view str,
const regex& pattern, std::string_view repl);
140 friend std::string
regex_replace(std::string_view str,
const regex& pattern, Re2Replacement repl);
150bool regex_match(std::string_view str, match_results& m,
const regex& pattern);
159bool regex_search(std::string_view str, match_results& m,
const regex& pattern);
167std::string
regex_replace(std::string_view str,
const regex& pattern, std::string_view repl);
186struct Re2Replacement
final {
187 std::string_view replacement;
192std::string
regex_replace(std::string_view str,
const regex& pattern, Re2Replacement repl);