文字列があるとします:997 668、スペースの前に何かを削除する必要があります。つまり、出力として668が必要です。私は正規表現を使用して解決策が必要です。今、私は以下の使用しています:空白の前に空白文字をすべて削除します。
はx = '997 668'
x = x.split(' ')[1]
は、上記にも出力を与えるが、x = 555は、出力は私がいけないその空白来れば、一つだけの数がある場合に失敗します。
文字列があるとします:997 668、スペースの前に何かを削除する必要があります。つまり、出力として668が必要です。私は正規表現を使用して解決策が必要です。今、私は以下の使用しています:空白の前に空白文字をすべて削除します。
はx = '997 668'
x = x.split(' ')[1]
は、上記にも出力を与えるが、x = 555は、出力は私がいけないその空白来れば、一つだけの数がある場合に失敗します。
より守備のビットは、単に[-1]
と最後の項目を取得した場合は、独自のコードは動作します:
>>> '996 668'.split()[-1]
'668'
>>> '668'.split()[-1]
'668'
あなたの入力は、その後、
235 989 877
yと複数のスペースがある場合私たちの質問は多少あいまいです。なぜなら、最初のスペースの前のすべてを削除するのか、最後のスペースの前のすべてを削除するのかを言っていないからです。
TigerhawkT3の回答は、最後のスペースの前のすべてを削除します。
あなたが最初のスペースの前にすべてのものを削除したい場合は、あなたがsplit
に2つ目のパラメータを必要としません、それはこの方法:
>>> '996 668'.split(' ', 1)[-1]
'668'
>>> '996'.split(' ', 1)[-1]
'996'
>>> '996 351 980 221'.split(' ', 1)[-1]
'351 980 221'
注意(ちなみに、素晴らしいです)TigerhawkT3の答えはあなたを与えること他の解釈の答え:
>>> '996 351 980 221'.split()[-1]
'221'
あなたが望むものによって異なります。
正規表現を使用しないでください。 :)
正規表現のソリューション:あなたは例外キャッチャーを使用せずにIndexError
を避けることができるように
import re
re.findall('\d+', x)[-1]
re.findall
は常にリストを返します。
正規表現で解決策が必要なのはなぜですか?非常に頻繁に正規表現は適切ではないが、質問者はしばしばそれらの解決法を求めている。これは誰かが正規表現を使用するように強制している宿題の問題ですか? (ただ興味があります) –
'x = x.split( '')x以外にx.split( '')[1]' –