我试图搜索一个特定的模式来只抓取那些与给定文件夹中的模式对齐的文件。 我需要一些帮助来开发一个匹配两个模式的正则表达式-我似乎找不到一个同时匹配这两个模式的正则表达式。 这是我使用的原始正则表达式:
r"^([a-zA-Z]+)__?(\d+).(\d+).(\d+)\.xlsx"
之所以采用这种搜索模式,是因为我然后将文件名、日期(dd-mm-yy)和完整文件名提取为五个变量,这样就可以提取包含在完整文件名中的日期,即文件的输入日期。在
^{pr2}$现在我尝试以下方法:
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"
有可能有一个模式来匹配两个文件吗?还是我应该把它们分成两种模式?在
你可以选择:
分解这意味着:
^{pr2}$见a demo on regex101.com。另外,看看^{} 。在
这里的模式似乎是:
首先是一些字母表,然后是一个或多个分数不足,a日期的格式是xx.xx.xx以及结尾的
.xlsx
格式,可以将其转换为regex:相关问题 更多 >
编程相关推荐