从我的Python字符串中删除无效和非升序字符

时间:2018-09-27 13:41:26

标签: python regex ascii

尝试格式化此字符串并去除非ASCII字符

import re 
text = '<phone_number><![CDATA[0145236243 <0x0C><0x05><0x4>

]]>'     clean = re.sub('[^ \ x00- \ x7f]',“”,文本)

这似乎无法正确完成工作。有人有适当的解决方案。我还上传了一个文件,以防万一stackoverflow格式化了非升序字符。

2 个答案:

答案 0 :(得分:1)

不是很普通。但是以下解决方案可能对您有用

''.join([i for i in text.split() if('<0x') not in i])#'<phone_number><![CDATA[0145236243]]></phone_number>'

使用正则表达式

 re.sub('(<0x\w*>)|\s',"", text) # '<phone_number><![CDATA[0145236243]]></phone_number>'

答案 1 :(得分:0)

对于所有非UTF-8字符,此链接也具有类似的解决方案。 Regular expression that finds and replaces non-ascii characters with Python

您可以为此目的尝试使用str.encode()和str.decode()。

然后您可以更换它们。