0

我有以下代码。

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

在此之后运行message.gateway_message_id变量包含以下内容:

18271817281-3

我现在想message.gateway_message_id拿掉破折号和它之后的所有东西,只留下 18271817281,怎么样?

4

3 回答 3

4

str.partition(或str.rpartition取决于剥离破折号的哪一侧)是为此而建造的,它也将是最快的

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

>>> text = '18271817281-3'
>>> text.rpartition('-')[0]
'18271817281'
于 2013-04-26T09:11:10.577 回答
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'
于 2013-04-26T08:48:16.167 回答
1
import re

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

出去:

'18271817281'
于 2013-04-26T08:53:57.950 回答