如何在 python 中从字符串中删除转义字符?



我有看起来像这样的字符串text = u'xd7nRecord has been added successfully, record id: 92'.我试图从字符串中删除转义字符xd7n,以便我可以将其用于其他目的。

我试过str(text).它可以工作,但无法删除字符xd7

UnicodeEncodeError: 'ascii' codec 无法编码字符 u'\xd7' 位置 0:序数不在范围内(128(

我有什么办法可以从字符串中删除上面的任何转义字符?谢谢

您可以使用替换尝试以下操作:

text=u'xd7nRecord has been added successfully, record id: 92'
bad_chars = ['xd7', 'n', 'x99m', "xf0"] 
for i in bad_chars : 
text = text.replace(i, '') 
text

似乎你有一个 unicode 字符串,就像在 python 2.x 中一样,我们有 unicode 字符串,比如

inp_str = u'\xd7已成功添加记录,记录 ID:92'

如果你想删除转义追踪器,这意味着几乎特殊的追逐器,我希望这是只获得ASCII追逐器而不使用任何正则表达式或任何硬编码的方法之一。

inp_str = u'xd7nRecord 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 级别的 charecter,它会忽略。而你只需剥离 ''

希望这对你:)有所帮助

我相信正则表达式可以提供帮助

import re
text = u'xd7nRecord has been added successfully, record id: 92'
res = re.sub('[^A-Za-z0-9]+', ' ', text).strip()

结果:

'Record has been added successfully record id 92'

你可以通过"切片"字符串来做到这一点:

string = 'xd7nRecord has been added successfully, record id: 92'
text = string[2:]

尝试regex.


import re
def escape_ansi(line):
ansi_escape =re.compile(r'(xd7|n)')
return ansi_escape.sub('', line)
text = u'xd7nRecord has been added successfully, record id: 92'
print(escape_ansi(text))

您可以使用内置的正则表达式库。

import re
text = u'xd7nRecord 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

如果您可以没有标点符号,这似乎可以通过您的测试用例。

最新更新