我试图用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
最佳答案
您可以使用
r'^0*{}\.SPL$'.format(filename)
请参见regex demo online。
如果
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']
关于python - 匹配文件名和前导零,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53596034/