INNER CODE UNIT · Python
_match_pattern
ArcSurge/Termius-Pro-zh_CN · lang.py:202
def _match_pattern(name, pattern, is_dir, is_root=False):
"""模式匹配(支持 .gitignore 风格)"""
if pattern.startswith('/') and not is_root:
return False
pattern = pattern.lstrip('/')
pattern = pattern[2:] if pattern.startswith('*/') else pattern
if pattern.endswith('/'):
clean_pattern = pattern[:-1]
has_wildcard = '*' in clean_pattern or '?' in clean_pattern
return is_dir and (name == clean_pattern if not has_wildcard else fnmatch.fnmatch(name, clean_pattern))
has_wildcard = '*' in pattern or '?' in pattern
return name == pattern if not has_wildcard else fnmatch.fnmatch(name, pattern)
def is_comment_line(line):