可以使用正则表达式来实现不区分大小写的文件名模式匹配。以下是一个示例代码:
import re
def match_filenames(pattern, filenames):
regex = re.compile(pattern, re.IGNORECASE)
matching_filenames = []
for filename in filenames:
if regex.match(filename):
matching_filenames.append(filename)
if len(matching_filenames) == 0:
return None
return matching_filenames
filenames = ["file1.txt", "file2.txt", "File3.txt", "file4.doc"]
pattern = "file.*\.txt"
result = match_filenames(pattern, filenames)
print(result)
输出结果为:
['file1.txt', 'file2.txt', 'File3.txt']
在这个例子中,我们定义了一个match_filenames
函数,它接受一个文件名模式和一个文件名列表作为输入。函数内部使用re.compile
函数将模式编译成正则表达式对象,并使用re.IGNORECASE
参数来忽略大小写。然后,我们遍历文件名列表,对每个文件名使用regex.match
方法进行匹配,如果匹配成功则将文件名添加到matching_filenames
列表中。最后,如果没有找到匹配的文件名,则返回None
,否则返回匹配的文件名列表。
上一篇:不区分大小写的文本列表排序
下一篇:不区分大小写的用户名检查?