Как разделить строку адреса электронной почты / пароля на две части в Python? - PullRequest
2 голосов
/ 12 января 2009

Допустим, у нас есть эта строка: [18] email@email.com:pwd:

email@email.com - это электронная почта, pwd - пароль.

Также допустим, что у нас есть эта переменная со значением

f = "[18] email@email.com:pwd:"

Я хотел бы знать, есть ли способ сделать две другие переменные с именами var1 и var2, где переменная var1 будет получать точную информацию электронной почты из переменных f и var2 точную информация о пароле от var2.

Результат после запуска приложения должен быть таким:

var1 = "email@email.com"

и

var2 = "pwd"

Ответы [ 4 ]

9 голосов
/ 12 января 2009
>>> var1, var2, _ = "[18] email@email.com:pwd:"[5:].split(":")
>>> var1, var2
('email@email.com', 'pwd')

Или, если «[18]» не является фиксированным префиксом:

>>> var1, var2, _ = "[18] email@email.com:pwd:".split("] ")[1].split(":")
>>> var1, var2
('email@email.com', 'pwd')
7 голосов
/ 12 января 2009
import re
var1, var2 = re.findall(r'\s(.*?):(.*):', f)[0]

Если findall () [0] выглядит как два шага вперед и один назад:

var1, var2 = re.search(r'\s(.*?):(.*):', f).groups()
5 голосов
/ 12 января 2009
var1, var2 = re.split(r'[ :]', f)[1:3]
1 голос
/ 14 января 2009

Чтобы разделить на первое двоеточие ":", вы можете сделать:

# keep all after last space
f1= f.rpartition(" ")[2]
var1, _, var2= f1.partition(":")
...