我有以下代码。
message.gateway_message_id = parsed_response['gateway_message_id'].strip()
在此之后运行message.gateway_message_id
变量包含以下内容:
18271817281-3
我现在想message.gateway_message_id
拿掉破折号和它之后的所有东西,只留下 18271817281,怎么样?
我有以下代码。
message.gateway_message_id = parsed_response['gateway_message_id'].strip()
在此之后运行message.gateway_message_id
变量包含以下内容:
18271817281-3
我现在想message.gateway_message_id
拿掉破折号和它之后的所有东西,只留下 18271817281,怎么样?
str.partition
(或str.rpartition
取决于剥离破折号的哪一侧)是为此而建造的,它也将是最快的
message.gateway_message_id.rpartition('-')[0]
>>> text = '18271817281-3'
>>> text.rpartition('-')[0]
'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'