簡體   English   中英

如何從python中的字符串中刪除轉義符?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM