30 static constexpr std::size_t
35 return std::numeric_limits< std::size_t >::max();
44 bool is_case_sensative )
46 auto regex_flags = std::regex::ECMAScript;
48 if( !is_case_sensative )
50 regex_flags |= std::regex::icase;
67 target_path.data() + target_path.size(),
74 std::back_inserter( match_results ),
75 [ begin = target_path.data() ](
const auto & m ){
76 return matched_item_descriptor_t{ m.first - begin, m.second - begin };
nonstd::string_view string_view_t
Regex engine implementation for using with standard regex implementation.
std::vector< std::pair< std::size_t, size_t > > match_results_t
static auto submatch_end_pos(const matched_item_descriptor_t &m)
Get the end of a submatch.
match_results_t::value_type matched_item_descriptor_t
static auto try_match(string_view_t target_path, const compiled_regex_t &r, match_results_t &match_results)
Wrapper function for matching logic invokation.
std::regex compiled_regex_t
static auto submatch_begin_pos(const matched_item_descriptor_t &m)
Get the beginning of a submatch.
static auto compile_regex(string_view_t r, bool is_case_sensative)
Create compiled regex object for a given route.
static constexpr std::size_t max_capture_groups()