Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
try except solution in Clear category for Unix Match. Part 2 by kdim
import re
def unix_match(filename: str, pattern: str) -> bool:
t = { '.':'\.', '*':'.*', '?':'.', '[!':'[^', '[^]':'[^.]' }
for i, j in t.items():
pattern = pattern.replace(i, j)
print(pattern)
try:
return bool(re.search(pattern, filename))
except re.error:
return False
if __name__ == '__main__':
print("Example:")
print(unix_match('somefile.txt', '*'))
# These "asserts" are used for self-checking and not for an auto-testing
assert unix_match('somefile.txt', 'somefile.txt') == True
assert unix_match('1name.txt', '[!abc]name.txt') == True
assert unix_match('log1.txt', 'log[!0].txt') == True
assert unix_match('log1.txt', 'log[1234567890].txt') == True
assert unix_match('log1.txt', 'log[!1].txt') == False
assert unix_match("name.txt","name[]txt") == False
assert unix_match("[!]check.txt","[!]check.txt") == True
assert unix_match("checkio","[c[]heckio") == True
print("Coding complete? Click 'Check' to earn cool rewards!")
Jan. 3, 2021
Comments: