匹配文件名和前导零

时间:2018-12-03 14:41:10

标签: python regex

我正在尝试使用RegEx完全匹配Printer Spooler文件夹中的一个文件。基本上,我要寻找的是使用Python匹配%windir%\ spool \ PRINTERS中的一个名为* [filename] .SPL的文件。我认为使用动态生成的RegEx的方式如下:[不匹配零或多零] + [文件名] .SPL

尝试了一些正则表达式,但是在regex101.com上始终遇到前一个文件的换行符匹配的问题

文件格式:

02980.SPL
20980.SPL
00011.SPL
00001.SPL

我想出的表达方式:

[\r\n][^1-9]+1.SPL
[^1-9].*1.SPL  

1 个答案:

答案 0 :(得分:1)

您可以使用

r'^0*{}\.SPL$'.format(filename)

请参见regex demo online

如果filename1,则模式将类似于^0*1\.SPL$并将匹配:

  • ^-字符串的开头
  • 0*-零个或多个0字符
  • 1\.SPL-1.SPL子字符串
  • $-字符串的结尾。

请参见Python demo

import re
l = ['02980.SPL','20980.SPL','00011.SPL','00001.SPL']
filename=1
rx = re.compile(r'^0*{}\.SPL$'.format(filename))
print([f for f in l if rx.search(f) ])
# => ['00001.SPL']
相关问题