Python匹配整个文件名,而不仅仅是扩展名

Python匹配整个文件名,而不仅仅是扩展名,python,regex,Python,Regex,目标: 使用Python正则表达式返回具有特定文件扩展名的文件名列表 文件列表: bios_file = re.findall(r'.*\.(rom|[0-9]{3})+', name, re.I) X8SIA9.ROM X8SIA0.rom X8SIA0.928 Regex查找以*.ROM或3倍数字结尾的文件: bios_file = re.findall(r'.*\.(rom|[0-9]{3})+', name, re.I) 问题: bios_文件正在返回['ROM']、['ROM'

目标: 使用Python正则表达式返回具有特定文件扩展名的文件名列表

文件列表:

bios_file = re.findall(r'.*\.(rom|[0-9]{3})+', name, re.I)
  • X8SIA9.ROM
  • X8SIA0.rom
  • X8SIA0.928
Regex查找以*.ROM或3倍数字结尾的文件:

bios_file = re.findall(r'.*\.(rom|[0-9]{3})+', name, re.I)
问题:
bios_文件正在返回
['ROM']、['ROM']、[928]
。bios_文件应返回整个文件名
['X8SIA9.ROM'],
等。如何返回完整的文件名而不仅仅是文件扩展名?

您没有在组中捕获整个文件名。您还可以将非捕获组与
(?:…)
一起使用


您没有捕获组中的整个文件名。您还可以将非捕获组与
(?:…)
一起使用


您没有捕获组中的整个文件名。您还可以将非捕获组与
(?:…)
一起使用


您没有捕获组中的整个文件名。您还可以将非捕获组与
(?:…)
一起使用


如何获取文件名?如何获取文件名?如何获取文件名?如何获取文件名?如何获取文件名?使用非捕获组是正确的方法。然而,有一个相对简单的正则表达式不使用组:
*\.rom.*\[0-9]{3}
。这在使用组与重复
*\.
之间进行了权衡。使用非捕获组是正确的方法。然而,有一个相对简单的正则表达式不使用组:
*\.rom.*\[0-9]{3}
。这在使用组与重复
*\.
之间进行了权衡。使用非捕获组是正确的方法。然而,有一个相对简单的正则表达式不使用组:
*\.rom.*\[0-9]{3}
。这在使用组与重复
*\.
之间进行了权衡。使用非捕获组是正确的方法。然而,有一个相对简单的正则表达式不使用组:
*\.rom.*\[0-9]{3}
。这在使用组与重复
*.
之间进行了权衡。