27 bool isMatch(std::string_view node, std::string_view name) {
29 return (name == node);
31 std::regex pattern({name.data(), name.size()});
32 return std::regex_match(begin(node), end(node), pattern);
36 bool compareEqual(std::string_view node, std::string_view name) {
return (name == node); }
39 return std::regex_match(std::string(node.data(), node.size()), pattern);
44 : std::regex_match(name.begin(), name.end(), std::regex(std::string(selection))));
48 auto pos = name.rfind(
'[');
49 if (pos != name.npos) {
50 if (std::stoi(std::string(name.substr(pos + 1, name.rfind(
']')))) ==
copy) {
58 bool accepted(std::vector<std::regex>
const&
keys, std::string_view node) {
59 return (find_if(begin(
keys), end(
keys), [&](
const auto& n) ->
bool {
return compareEqual(node, n); }) !=
64 for(
unsigned int i = 0; i < filter->
isRegex.size(); i++ ) {
79 return (input.find(
".") != std::string_view::npos) || (input.find(
"*") != std::string_view::npos);
83 return (input.find(
":") != std::string_view::npos);
87 std::string_view
v = input;
88 auto first =
v.find_first_of(
"//");
89 v.remove_prefix(std::min(first + 2,
v.size()));
93 std::vector<std::string_view>
split(std::string_view str,
const char* delims) {
94 std::vector<std::string_view> ret;
96 std::string_view::size_type start = 0;
97 auto pos = str.find_first_of(delims, start);
98 while (pos != std::string_view::npos) {
100 ret.emplace_back(str.substr(start, pos - start));
103 pos = str.find_first_of(delims, start);
105 if (start < str.length())
106 ret.emplace_back(str.substr(start, str.length() - start));
111 std::string_view
v = input;
112 auto first =
v.find_first_of(
":");
113 v.remove_prefix(std::min(first + 1,
v.size()));