我有以下代碼。Python將條帶化後的所有內容 - 破折號
message.gateway_message_id = parsed_response['gateway_message_id'].strip()
這個運行之後message.gateway_message_id
變量包含此:
18271817281-3
我現在想借message.gateway_message_id
和剝離破折號,一切就只留下18271817281之後,怎麼樣?
我有以下代碼。Python將條帶化後的所有內容 - 破折號
message.gateway_message_id = parsed_response['gateway_message_id'].strip()
這個運行之後message.gateway_message_id
變量包含此:
18271817281-3
我現在想借message.gateway_message_id
和剝離破折號,一切就只留下18271817281之後,怎麼樣?
使用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'
import re
message.gateway_message_id='18271817281-3'
re.compile(re.escape('-')+ '.*').sub('',message.gateway_message_id)
出:
'18271817281'
str.partition
(或str.rpartition
取決於哪側來剝離破折號)建對於這一點,它也將是最快的
message.gateway_message_id.rpartition('-')[0]
>>> text = '18271817281-3'
>>> text.rpartition('-')[0]
'18271817281'
這是真的'str.partition'工作! – jamylak 2013-04-26 09:14:33