我有以下代码。
message.gateway_message_id = parsed_response['gateway_message_id'].strip()
运行此后message.gateway_message_id
变量包含:
18271817281-3
我现在想采取message.gateway_message_id
并剥离破折号,一切之后只留下18271817281,怎么样?
答案 0 :(得分:4)
str.partition
(或str.rpartition
取决于剥去破折号的哪一方)是为此而建的,它也将是最快的
message.gateway_message_id.rpartition('-')[0]
>>> text = '18271817281-3'
>>> text.rpartition('-')[0]
'18271817281'
答案 1 :(得分: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'
答案 2 :(得分:1)
import re
message.gateway_message_id='18271817281-3'
re.compile(re.escape('-')+ '.*').sub('',message.gateway_message_id)
出:
'18271817281'