我有一个脚本,它编译一个.exe文件并运行该.exe的--tree=all
。这将返回存储文件的目录,我想使用该路径来运行它。
这是我从--tree=all
得到的输出
| | +-outwindows-x86-MD-mbcs-vs2008-relbinVisualStudio08-32bit.exe
所以我使用了以下方法来去除特殊字符:
line = re.sub('[|+ -]', '', lines)
这是有效的,但它删除了-
的所有实例,结果是:
outwindowsx86MDmbcsvs2008relbinVisualStudio0832bit.exe
但我想得到这个:
outwindows-x86-MD-mbcs-vs2008-relbinVisualStudio08-32bit.exe
如何确保只删除-
的第一个实例,而不删除其余实例?
如果您可以依赖名称前面的-
,并且您不坚持使用正则表达式:
s = '| | +-outwindows-x86-MD-mbcs-vs2008-relbinVisualStudio08-32bit.exe'
print s.split('-', 1)[1]
输出:outwindows-x86-MD-mbcs-vs2008-relinVisualStudio08-32bit.exe
您需要将替换分为两部分,对于第二部分,将替换次数限制为一次。
line = re.sub('[|+ ]','',lines)
line = re.sub('-','',line, 1)
您可以使用re.sub('^[|+ -]*', '', line)
删除行首的特殊字符。