2013-04-26 90 views
0

我有以下代碼。Python將條帶化後的所有內容 - 破折號

message.gateway_message_id = parsed_response['gateway_message_id'].strip() 

這個運行之後message.gateway_message_id變量包含此:

18271817281-3 

我現在想借message.gateway_message_id和剝離破折號,一切就只留下18271817281之後,怎麼樣?

回答

2

使用str.rsplit與maxsplit參數:

message.gateway_message_id.rsplit('-', 1)[0] 

'18271817281-3'.rsplit('-', 1)[0] # '18271817281' 
'1-2-3-4'.rsplit('-', 1)[0] # '1-2-3' 
'1234'.rsplit('-', 1)[0] # '1234' 
+1

這是真的'str.partition'工作! – jamylak 2013-04-26 09:14:33

1
import re 

message.gateway_message_id='18271817281-3' 
re.compile(re.escape('-')+ '.*').sub('',message.gateway_message_id) 

出:

'18271817281' 
4

str.partition(或str.rpartition取決於哪側來剝離破折號)建對於這一點,它也將是最快的

message.gateway_message_id.rpartition('-')[0] 

>>> text = '18271817281-3' 
>>> text.rpartition('-')[0] 
'18271817281'