假設我有一個字符串:997 668,現在我需要在空間之前刪除任何東西,即我需要668作爲輸出。我需要使用正則表達式的解決方案。現在,我使用的是下面:在Python中使用正則表達式之前刪除所有內容
x = '997 668'
x = x.split(' ')[1]
上面也能給輸出,但是當只有一個號碼,如果x = 555,然後輸出來的空白,我不想失敗。
假設我有一個字符串:997 668,現在我需要在空間之前刪除任何東西,即我需要668作爲輸出。我需要使用正則表達式的解決方案。現在,我使用的是下面:在Python中使用正則表達式之前刪除所有內容
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
,做這樣說:
>>> '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'
取決於你想要什麼。
只是不要使用正則表達式。 :)
正則表達式的解決方案:
import re
re.findall('\d+', x)[-1]
re.findall
總是返回一個列表,這樣就可以避免你IndexError
不使用異常捕獲器。
爲什麼你需要一個正則表達式的解決方案?很多時候,正則表達式並不合適,但是提問者經常要求他們提供解決方案。這是一個家庭作業問題,有人強迫你使用正則表達式? (只是好奇) –
'x = x.split('')[0] if「」not in x else x.split('')[1]' –