【发布时间】:2010-09-30 23:57:43
【问题描述】:
假设我们有Zaptoit:685158:zaptoit@hotmail.com
怎么拆分所以只剩下685158:zaptoit@hotmail.com
【问题讨论】:
标签: python regex parsing split
假设我们有Zaptoit:685158:zaptoit@hotmail.com
怎么拆分所以只剩下685158:zaptoit@hotmail.com
【问题讨论】:
标签: python regex parsing split
以下拆分字符串,忽略第一个元素并重新加入其余元素:
":".join(x.split(":")[1:])
输出:
'685158:zaptoit@hotmail.com'
【讨论】:
使用 str.split() 方法,maxsplit 参数的值为 1。
mailID = 'Zaptoit:685158:zaptoit@hotmail.com'
mailID.split(':', 1)[1]
希望对您有所帮助。
【讨论】:
从 Python 2.5 开始,有一个更直接的解决方案。如果没有找到分隔符,它会很好地降级:
>>> s = 'Zaptoit:685158:zaptoit@hotmail.com'
>>> s.partition(':')
('Zaptoit', ':', '685158:zaptoit@hotmail.com')
>>> s.partition(':')[2]
'685158:zaptoit@hotmail.com'
>>> s.partition(';')
('Zaptoit:685158:zaptoit@hotmail.com', '', '')
【讨论】:
split(),但之前没有遇到过partition()。谢谢!
>>> s = 'Zaptoit:685158:zaptoit@hotmail.com'
>>> s.split( ':', 1 )[1]
'685158:zaptoit@hotmail.com'
【讨论】:
另一种方法,不使用split:
s = 'Zaptoit:685158:zaptoit@hotmail.com'
s[s.find(':')+1:]
例如:
>>> s = 'Zaptoit:685158:zaptoit@hotmail.com'
>>> s[s.find(':')+1:]
'685158:zaptoit@hotmail.com'
【讨论】:
s = re.sub('^.*?:', '', s)
【讨论】:
另一种解决方案:
s = 'Zaptoit:685158:zaptoit@hotmail.com'
s.split(':', 1)[1]
【讨论】: