我有看起来像这样的字符串text = u'xd7nRecord has been added successfully, record id: 92'
.我试图从字符串中删除转义字符xd7
和n
,以便我可以将其用于其他目的。
我试过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
如果您可以没有标点符号,这似乎可以通过您的测试用例。