10#include <userver/utils/fast_pimpl.hpp>
12USERVER_NAMESPACE_BEGIN
51 explicit regex(std::string_view pattern);
54 regex(regex&&)
noexcept;
55 regex& operator=(
const regex&);
56 regex& operator=(regex&&)
noexcept;
67 std::string
str()
const;
71 utils::FastPimpl<Impl, 16, 8> impl_;
73 friend class match_results;
74 friend bool regex_match(std::string_view str,
const regex& pattern);
75 friend bool regex_match(std::string_view str, match_results& m,
const regex& pattern);
76 friend bool regex_search(std::string_view str,
const regex& pattern);
77 friend bool regex_search(std::string_view str, match_results& m,
const regex& pattern);
78 friend std::string
regex_replace(std::string_view str,
const regex& pattern, std::string_view repl);
79 friend std::string
regex_replace(std::string_view str,
const regex& pattern, Re2Replacement repl);
97class match_results
final {
103 match_results(
const match_results&);
104 match_results& operator=(
const match_results&);
121 std::size_t
length(std::size_t sub)
const;
131 utils::FastPimpl<Impl, 120, 8> impl_;
133 friend bool regex_match(std::string_view str,
const regex& pattern);
134 friend bool regex_match(std::string_view str, match_results& m,
const regex& pattern);
136 friend bool regex_search(std::string_view str, match_results& m,
const regex& pattern);
137 friend std::string
regex_replace(std::string_view str,
const regex& pattern, std::string_view repl);
138 friend std::string
regex_replace(std::string_view str,
const regex& pattern, Re2Replacement repl);
148bool regex_match(std::string_view str, match_results& m,
const regex& pattern);
157bool regex_search(std::string_view str, match_results& m,
const regex& pattern);
165std::string
regex_replace(std::string_view str,
const regex& pattern, std::string_view repl);
184struct Re2Replacement
final {
185 std::string_view replacement;
190std::string
regex_replace(std::string_view str,
const regex& pattern, Re2Replacement repl);
193bool IsImplicitBoostRegexFallbackAllowed()
noexcept;
194void SetImplicitBoostRegexFallbackAllowed(
bool)
noexcept;