2016-12-09 2 views
-2

Так я хочу, чтобы преобразовать регулярные выражения пробельные в строку, напримерПреобразование регулярных выражений пробельных символов из списка в строку

list1 = ["Hello","\s","my","\s","name","\s","is"] 

И я хочу, чтобы преобразовать его в строку, как

"Hello my name is" 

Может кто-нибудь пожалуйста Помогите. Но также, если были такие символы, как "\ t" как бы я это сделал?

ответ

5
list = ["Hello","\s","my","\s","name","\s","is"] 
str1 = ''.join(list).replace("\s"," ") 

Выход:

>>> str1 
'Hello my name is' 

Update:

Если у вас есть что-то вроде этого list1 = ["Hello","\s","my","\s","name","\t","is"], то вы можете использовать несколько заменить

>>> str1 = ''.join(list).replace("\s"," ").replace("\t"," ") 
>>> str1 
'Hello my name is' 

или если это только \t

str1 = ''.join(list).replace("\t","anystring") 
0

Вам не нужно даже регулярные выражения для этого:

s = ' '.join([item for item in list if item is not '\s']) 

Пожалуйста, обратите внимание, что list является недопустимое имя переменной в Python, как он конфликтует с функцией list.

+0

Да, но регулярное выражение намного легче читать. –

+0

Что значит? В данных примера есть только строка '\ s', а данные - это список, а не строка. Как в этом случае помогают регулярные выражения? – languitar

2

Я настоятельно рекомендую использовать функцию присоединиться строку, указанную в одном из предыдущих ответов, так как он менее многословен. Тем не менее, если вы абсолютно необходимо использовать регулярное выражение для того, чтобы выполнить задачу, вот ответ:

import re 

list1 = ["Hello","\s","my","\s","name","\s","is"] 
list_str = ''.join(list1) 

updated_str = re.split('\\\s', list_str) 
updated_str = ' '.join(updated_str) 

print(updated_str) 

Выход:

'Hello my name is' 

Для того, чтобы использовать сырые строки обозначения, заменить 5-й линии код, приведенный ниже:

updated_str = re.split(r'\\s', list_str) 

Оба будут иметь одинаковый выходной результат.

Смежные вопросы