Python Split String - PullRequest
       18

Python Split String

13 голосов
/ 12 января 2009

Скажем, у нас есть Zaptoit:685158:zaptoit@hotmail.com

Как вы разбили так, чтобы осталось только 685158:zaptoit@hotmail.com

Ответы [ 7 ]

13 голосов
/ 12 января 2009
>>> s = 'Zaptoit:685158:zaptoit@hotmail.com'
>>> s.split( ':', 1 )[1]
'685158:zaptoit@hotmail.com'
5 голосов
/ 12 января 2009

Другой метод, без использования split:

s = 'Zaptoit:685158:zaptoit@hotmail.com'
s[s.find(':')+1:]

Ex:

>>> s = 'Zaptoit:685158:zaptoit@hotmail.com'
>>> s[s.find(':')+1:]
'685158:zaptoit@hotmail.com'
5 голосов
/ 12 января 2009

Другое решение:

s = 'Zaptoit:685158:zaptoit@hotmail.com'
s.split(':', 1)[1]
3 голосов
/ 09 января 2012

Начиная с 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', '', '')
0 голосов
/ 14 декабря 2017

После разбивает строку, игнорирует первый элемент и объединяет остальные:

":".join(x.split(":")[1:])

Выход:

'685158:zaptoit@hotmail.com'
0 голосов
/ 10 января 2012

Используйте метод str.split () со значением аргумента maxsplit, равным 1.

mailID = 'Zaptoit:685158:zaptoit@hotmail.com' 
mailID.split(':', 1)[1]

Надеюсь, это помогло.

0 голосов
/ 12 января 2009
s = re.sub('^.*?:', '', s)
...