Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Second solution in Uncategorized category for Unix Match. Part 2 by vvm70
import re
def unix_match(filename: str, pattern: str) -> bool:
if len(pattern[pattern.find('['):pattern.rfind(']')]) > 2:
pattern = pattern.replace('!', '^')
if pattern.count('[') == 1 and pattern.count(']') == 1:
pattern = pattern.replace('[]', '\[\]').replace('[!]', '\[!\]')
return re.fullmatch(pattern, filename) != None
if __name__ == '__main__':
print("Example:")
print(unix_match('somefile.txt', '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
print("Coding complete? Click 'Check' to earn cool rewards!")
Aug. 19, 2020