module Main where
import Data.List (tails)
match _ [] = False
match
('*':xs
) str
= any (match xs
) $ tails str
match
('?':xs
) str
= match xs
$ tail str
match ('\\':x:xs) (y:ys) = x == y && match xs ys
match (x:xs) (y:ys) = x == y && match xs ys
main
= print $ match
"as*d*?qwe*qwe" "as123dssqwe12345678qwe"
bW9kdWxlIE1haW4gd2hlcmUKCmltcG9ydCBEYXRhLkxpc3QgKHRhaWxzKQoKdHlwZSBQYXR0ZXJuID0gU3RyaW5nCgptYXRjaCA6OiBQYXR0ZXJuIC0+IFN0cmluZyAtPiBCb29sCm1hdGNoIFtdIHhzID0gbnVsbCB4cwptYXRjaCBfICBbXSA9IEZhbHNlCm1hdGNoICgnKic6eHMpIHN0ciA9IGFueSAobWF0Y2ggeHMpICQgdGFpbHMgc3RyCm1hdGNoICgnPyc6eHMpIHN0ciA9IG1hdGNoIHhzICQgdGFpbCBzdHIKbWF0Y2ggKCdcXCc6eDp4cykgKHk6eXMpID0geCA9PSB5ICYmIG1hdGNoIHhzIHlzCm1hdGNoICh4OnhzKSAgICAgICh5OnlzKSA9IHggPT0geSAmJiBtYXRjaCB4cyB5cwoKbWFpbiA9IHByaW50ICQgbWF0Y2ggImFzKmQqP3F3ZSpxd2UiICJhczEyM2Rzc3F3ZTEyMzQ1Njc4cXdlIg==