我最近才在学习和利用正则表达式的力量,我有一个从 返回的文件的元组列表os.walk()
,如下所示:
files = ('s8_00.tif', 's9_00.tif', 's10_000.tif', 's11_00.tif')
我试图让它看起来像这样:
files = ('s8_##.tif', 's9_##.tif', 's10_###.tif', 's11_##.tif')
我试过用这个。
pad2 = re.compile(r'_00?')
for root, dirs, files in seqDirs:
pad = files[0]
p = pad2.sub("#", pad)
print p
这将返回:
p = ('s8#.tif', 's9#.tif', 's10#0.tif', 's11#.tif')
所以我将表达式改为:
pad2 = re.compile('(_)0+')
给我:
p = ('s8#.tif', 's9#.tif', 's10#.tif', 's11#.tif')
我的p = pad2.sub
功能有问题吗?还是我编译的表达式中存在问题?还是"_"
表达中的存在搞砸了?
我什至尝试在函数内部传递一些表达式pad2.sub
来测试它,当然这并没有真正起作用。我知道我在这里遗漏了一些东西,我有点卡住了。
任何和所有的帮助将不胜感激以及对逻辑的解释。