0

我有一个脚本可以编译和 .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

删除 的每个实例-,我如何确保只删除第一个实例?,剩下的就不用管了。

4

3 回答 3

1

您需要将替换分成两部分,第二部分将替换的次数限制为一。

line = re.sub('[|+ ]','',lines)
line = re.sub('-','',line, 1)
于 2012-07-12T14:37:28.647 回答
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
于 2012-07-12T14:43:52.680 回答
0

您可以使用re.sub('^[|+ -]*', '', line)删除行首的特殊字符。

于 2012-07-12T14:30:00.667 回答