我有一个编译和.exe文件的脚本并运行该.exe的--tree=all
。这将返回存储文件的目录,并且我想使用该路径来运行它。
这是我从--tree=all
| | +-out\windows-x86-MD-mbcs-vs2008-rel\bin\VisualStudio08-32bit.exe
所以我使用以下内容去除特殊字符
line = re.sub('[|+ -]','',lines)
,这有效,但会删除所有insta -
但这导致了这个
out\windowsx86MDmbcsvs2008rel\bin\VisualStudio0832bit.exe
删除-
的每个实例,如何确保只删除第一个实例?剩下的就不管用了。
答案 0 :(得分:1)
您需要将替换分为两个,而第二个将替换为一个替换。
line = re.sub('[|+ ]','',lines)
line = re.sub('-','',line, 1)
答案 1 :(得分:1)
如果您可以依赖名称前面的“ - ”而且您并不坚持使用正则表达式:
s = '| | +-out\windows-x86-MD-mbcs-vs2008-rel\bin\VisualStudio08-32bit.exe'
print s.split('-', 1)[1]
# out\windows-x86-MD-mbcs-vs2008-relin\VisualStudio08-32bit.exe
答案 2 :(得分:0)
您可以使用re.sub('^[|+ -]*', '', line)
删除该行开头的特殊字符。