要检查文件名是否与通配符模式匹配,可以使用正则表达式。以下是一个简单的示例,展示了如何使用Python编写一个函数来检查文件名是否与通配符模式匹配:
import re
def match_wildcard(pattern, filename):
# 将通配符模式转换为正则表达式
regex_pattern = re.escape(pattern).replace("\\?", ".").replace("\\*", ".*?")
# 使用正则表达式检查文件名是否匹配
return re.match(regex_pattern, filename) is not None
# 示例用法
pattern = "*.txt"
filename = "example.txt"
if match_wildcard(pattern, filename):
print(f"{filename} 匹配 {pattern}")
else:
print(f"{filename} 不匹配 {pattern}")
在这个示例中,我们首先导入了Python的正则表达式库。然后,我们定义了一个名为match_wildcard
的函数,该函数接受两个参数:通配符模式和要检查的文件名。我们使用re.escape
函数将通配符模式转换为一个正则表达式,然后将\\?
替换为.
,将\\*
替换为.*?
。最后,我们使用re.match
函数检查文件名是否与正则表达式匹配。
在示例用法中,我们定义了一个通配符模式*.txt
,以及一个要检查的文件名example.txt
。我们调用match_wildcard
函数,并根据其返回值打印相应的消息。
领取专属 10元无门槛券
手把手带您无忧上云