我试图搜索一个特定的模式,只抓住那些与给定文件夹中的模式对齐的文件。 我需要一些帮助来开发一个匹配两个模式的正则表达式 - 我似乎无法找到一个匹配两个模式的匹配。 这是原来的正则表达式我使用:正则表达式python - 抓文件名
r"^([a-zA-Z]+)__?(\d+).(\d+).(\d+)\.xlsx"
这样做的原因搜索模式,是,我然后提取姓名,日期(DD-MM-YY)和完整文件名到五个变量,这允许我提取包含在指定文件输入日期的完整文件名称中的日期。
for name, day, month, year, fullfilename in files
现在我尝试以下:
files = []
for f in os.listdir(drive):
match = re.search(r"^([a-zA-Z-]+)__?(\d+).(\d+).(\d+).xlsx$",f)
if match:
files.append(match.groups() + (f,))
样品文件名:
filename_19.01.17.xlsx
filename__04.01.17.xlsx
AB_TEST_DATA-OUTER_13.02.17.xlsx
因此,提取应该是以下几点:
filename, 19, 01, 17, filename_19.01.17.xlsx
也试过以下:
r"^(([a-zA-Z-]+)(__?)){1,3}(\d+).(\d+).(\d+).xlsx"
是否有可能有一个模式匹配所有文件?或者我应该将它们分成两种模式?
可能是一个愚蠢的问题,但简单的'“。* \。xlsx”'有什么问题?那个目录中还有其他的xlsx文件,你不想要? – Bahrom
@Bahrom是的,我不想匹配 – OAK