我试图用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

如果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']

关于python - 匹配文件名和前导零,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53596034/

10-11 03:49