特定の認識されたパターンに従って、文字列の最後のビットを削除する最良の方法は何ですか? 例えば:
s = 'some Strings-and-stuff - SomeOther Strings-and-stuff - TAke.THis last -part away.txt'
戻ります:
'some Strings-and-stuff - SomeOther Strings-and-stuff'
パターン ' -
' を検索し、最後の文字列が発生した後に最後の文字列を削除する関数によって操作された' - '
場合。
編集:答えは次のように与えられました:
new_string = ' - '.join(s.split(' - ')[0:-1])
私が試した他のこと:
>>> re.sub(r'(.*) - ', '', s[::-1])[::-1]
'some Strings-and-stuff'
提案された.split()
関数を使用すると、次のように出力を取得できます。
>>> p = s.split(' - ')
>>> p.pop()
'TAke.THis last -part away.txt'
>>> ' - '.join(p)
'some Strings-and-stuff - SomeOther Strings-and-stuff'
pop()
それはうまくいきますが、他の提案された答えは、ライナーやdel
機能を取り除くためのより良い方法です。