передача строки в split() с экранированием её части
Есть необходимость работать именно с питоном 3.5, посему форматирую строку с параметрами и дальше мне нужно её разбить на части
name1 = Alex
name2 = Jhon
string = "First user name is {} and second user name is {}".format(name1, name2)
string.split()
всё хорошо пока name1 и name2 состоят из одного слова, когда это не так эти слова тоже разбиваются, а мне нужно их экранировать от этого. Разделитель именно пробел, т.е. string.split() остаётся как был. В итоге если name1 = Alex Smith, то он и должен как 1 объект оставаться после сплита:
... 'name' 'is' 'Alex Smith' ...
Ответы (1 шт):
Я бы предложил использовать временный разделитель:
name1 = 'Alex Black'
name2 = 'Jhon'
tempDelimiter = '#56'
string = "First user name is {} and second user name is {}"
string = string.replace(' ', tempDelimiter).format(name1, name2)
result = string.split(tempDelimiter)
print(result)
['First', 'user', 'name', 'is', 'Alex Black', 'and', 'second', 'user', 'name', 'is', 'Jhon']
tempDelimiter можно и другой записать, в зависимости от содержимого строки.
Думаю, этот способ проще, чем вставка в итоговый список.