我正在尝试使用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
答案 0 :(得分:1)
您可以使用
r'^0*{}\.SPL$'.format(filename)
如果filename
是1
,则模式将类似于^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']