#!/usr/bin/python
import re
star = r"[^\/]+"
doubleStar = r".*"
slash = r"\/"
questionMark = r"\w"
dot = r"\."
antPath = "foo/*/bar/**.ex?"
expectedPath = r"foo\/[^\/]+\/bar\/.*\.ex\w"
# Apply transformation
output = antPath.replace(r"/", slash).replace(r".", dot)
output = re.sub(r"(?<!\*)\*(?!\*)", star, output)
output = output.replace(r"**", doubleStar)
output = output.replace(r"?", questionMark)
if ( output == expectedPath ):
print "Success!"
else:
print "Failure..."
print "filteredPath: ", output
print "expectedPath: ", expectedPath
IyEvdXNyL2Jpbi9weXRob24KCmltcG9ydCByZQoKc3RhciA9IHIiW15cL10rIgpkb3VibGVTdGFyID0gciIuKiIKc2xhc2ggPSByIlwvIgpxdWVzdGlvbk1hcmsgPSByIlx3Igpkb3QgPSByIlwuIgoKYW50UGF0aCA9ICJmb28vKi9iYXIvKiouZXg/IgpleHBlY3RlZFBhdGggPSByImZvb1wvW15cL10rXC9iYXJcLy4qXC5leFx3IgoKIyBBcHBseSB0cmFuc2Zvcm1hdGlvbgpvdXRwdXQgPSBhbnRQYXRoLnJlcGxhY2UociIvIiwgc2xhc2gpLnJlcGxhY2UociIuIiwgZG90KQpvdXRwdXQgPSByZS5zdWIociIoPzwhXCopXCooPyFcKikiLCBzdGFyLCBvdXRwdXQpCm91dHB1dCA9IG91dHB1dC5yZXBsYWNlKHIiKioiLCBkb3VibGVTdGFyKQpvdXRwdXQgPSBvdXRwdXQucmVwbGFjZShyIj8iLCBxdWVzdGlvbk1hcmspCgppZiAoIG91dHB1dCA9PSBleHBlY3RlZFBhdGggKToKCXByaW50ICJTdWNjZXNzISIKZWxzZToKICAgIHByaW50ICJGYWlsdXJlLi4uIgpwcmludCAiZmlsdGVyZWRQYXRoOiAiLCBvdXRwdXQKcHJpbnQgImV4cGVjdGVkUGF0aDogIiwgZXhwZWN0ZWRQYXRo