0

.exe ファイルをコンパイルし、--tree=allその .exe を実行するスクリプトがあります。これにより、ファイルが保存されているディレクトリが返され、そのパスを使用して実行したいと考えています。

これは私が得る出力です--tree=all

| | +-out\windows-x86-MD-mbcs-vs2008-rel\bin\VisualStudio08-32bit.exe

だから私は特殊文字を取り除くために以下を使用しました

line = re.sub('[|+ -]','',lines)、これは機能しますが、すべてのインスタが削除されます-

しかし、それはこれをもたらします

out\windowsx86MDmbcsvs2008rel\bin\VisualStudio0832bit.exe

のすべてのインスタンスを削除する場合、-最初のインスタンスのみが削除されるようにするにはどうすればよいですか?残りはそのままにしておきます。

4

3 に答える 3

1

置換を 2 つに分割する必要があります。2 つ目は、置換回数を 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 に答える