Здравствуйте, dwebster, Вы писали:
D>Как это лучше сделать? Не хочется изобретать велосипед, наверняка задача просто решается при помощи boost или std.
http://www.cplusplus.com/reference/regex/
Здравствуйте, dwebster, Вы писали:
D>Допустим имеется строка, имя домена — "facebook.com"
D>И имеется другая строка, которая может содержать маску, например "*fa*b*k.com/so*page*"
D>Нужно определить, входит ли первая строка в правило, заданное второй строкой (в данном примере — входит).
Звёздочка означает, что под ней может скрываться ноль, один, или произвольное число символов? Если так, то кажется, что ты где-то напутал в формулировке.
Ведь тогда под звёздочной может скрываться всё что угодно, в том числе и искомая строка целиком! И для ответа в этом случае не нужно даже смотреть на неё
bool contains(const std::string& needle /* = "facebook.com" */, const std::string& haystack /* = "*fa*b*k.com/so*page*" */) {
return haystack.find('*') != std::string::npos
|| haystack.find(needle) != std::string::npos;
}
Здравствуйте, dwebster, Вы писали:
D>Допустим имеется строка, имя домена — "facebook.com"
D>И имеется другая строка, которая может содержать маску, например "*fa*b*k.com/so*page*"
https://github.com/MichaelCook/glob_match