Как Удалить Специальные Символы В Строке Python?

#python #python-3.x #string #re

Вопрос:

От spam/eggs до spam/eggs

 # This isn't working...
str = "spam/eggs"
s = bytes(str, "utf-8").decode("unicode_escape")

print(s)
>>> spam/eggs

# How to get "spam/eggs"
 

Комментарии:

1. Проверьте "spam/eggs".encode().decode() , ответило ли это на ваш вопрос ?

2. bytes("spam/eggs", "utf-8").decode("unicode_escape") == "spam/eggs"

Ответ №1:

В python вы не можете использовать»», потому что python подумает, что вы добавите что-то после него, например «t», «n » и т. Д. Таким образом, вы можете использовать дополнительную обратную косую черту в строке: string = 'spam\/eggs'

Я не думаю, что это самый эффективный способ сделать это по-другому, но вы можете это сделать:

 strs = 'spam/eggs'
print(strs)
strs = strs.replace('\','')
print(strs)
 

Я просто удалил его, заменив пустой строкой.

Ответ №2:

Вы можете использовать регулярные выражения.

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

 import re
myString = "spam/eggs"
str2 = re.sub(r'\', "", myString) # remove this character ''
print(str2)
# spam/eggs
 

Общее назначение (удаление определенных символов) :

 import re
myString = "spamp;a m/eg*gs"
str2 = re.sub(r'[\amp; *]', "", myString) # to remove what you want into the brackets
print(str2)
# spam/eggs
 

Комментарии:

1. Спасибо. Я думаю, что это более точно str2 = re.sub(r'\/', "/", myString) для общих целей

Ответ №3:

 str = "spam/eggs"
str2 = bytes(str, "utf-8").decode("unicode_escape")
print(str2)
 

Кстати: вам следует более тщательно поместить код в вопрос; тогда вы вызываете переменную str myString , а затем вторую переменную str2 str1