[英]How to remove escape characters from string in python?
我有一個看起來像這樣的字符串text = u'\\xd7\\nRecord has been added successfully, record id: 92'
。 我試圖從字符串中刪除轉義字符\\xd7
和\\n
,以便可以將其用於其他目的。
我嘗試了str(text)
。 它可以工作,但是不能刪除字符\\xd7
。
UnicodeEncodeError:'ascii'編解碼器無法在位置0編碼字符u'\\ xd7':序數不在范圍內(128)
我有什么辦法可以從字符串中刪除上述任何轉義字符? 謝謝
您可以使用replace嘗試以下操作:
text=u'\xd7\nRecord has been added successfully, record id: 92'
bad_chars = ['\xd7', '\n', '\x99m', "\xf0"]
for i in bad_chars :
text = text.replace(i, '')
text
您可以通過“切片”字符串來實現:
string = '\xd7\nRecord has been added successfully, record id: 92'
text = string[2:]
似乎您有一個像python 2.x這樣的unicode字符串,我們有一個像
inp_str = u'\\ xd7 \\ n已成功添加記錄,記錄ID:92'
如果要刪除轉義字符,這意味着幾乎是特殊的字符,我希望這是不使用任何正則表達式或任何硬編碼的僅獲取ascii字符的方法之一。
inp_str = u'\xd7\nRecord has been added successfully, record id: 92'
print inp_str.encode('ascii',errors='ignore').strip('\n')
Results : 'Record has been added successfully, record id: 92'
首先我確實進行了編碼,因為它已經是unicode了,所以在編碼為ascii時,如果有任何字符不在ascii級別,它將被忽略。您只需去除'\\ n'
希望這對您有所幫助:)
我相信正則表達式可以提供幫助
import re
text = u'\xd7\nRecord has been added successfully, record id: 92'
res = re.sub('[^A-Za-z0-9]+', ' ', text).strip()
結果:
'Record has been added successfully record id 92'
您可以使用內置的正則表達式庫。
import re
text = u'\xd7\nRecord has been added successfully, record id: 92'
result = re.sub('[^A-Za-z0-9]+', ' ', text)
print(result)
吐出Record has been added successfully record id 92
如果您可以生活在沒有標點符號的情況下,這似乎可以通過您的測試案例。
嘗試regex
。
import re
def escape_ansi(line):
ansi_escape =re.compile(r'(\xd7|\n)')
return ansi_escape.sub('', line)
text = u'\xd7\nRecord has been added successfully, record id: 92'
print(escape_ansi(text))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.