Python之后删除变量的所有内容 - 破折号

时间:2013-04-26 08:46:43

标签: python python-2.7

我有以下代码。

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

运行此后message.gateway_message_id变量包含:

18271817281-3

我现在想采取message.gateway_message_id并剥离破折号,一切之后只留下18271817281,怎么样?

3 个答案:

答案 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'