Python 用于删除奇怪字符的正则表达式
Python regex for removing strange characters
您好,
我有一个字符串列表,其中包含一些奇怪的字符(例如:�)。
例如:
'Replay fortement conseillé �\x9f\x98\x82�\x9f\x98\x82'
或:
'Le papa du mois �\x9f\x91\x8a'
我想从这些字符串中删除 �\x9f\x91\x8a 和 �\x9f\x98\x82�\x9f\x98\x82。
我试过这个正则表达式:((.?)\x[0-9]([a-z]|[0-9])(.?)+)+
但它不起作用。我是正则表达式的新手,所以我寻求帮助。
谢谢
处理这些字符而不是删除它们可能更好,但是如果您想在 Python 中删除它们,您可以不使用正则表达式。
text.decode("ascii", "ignore")
此行将解码 Python 中的字节数组,并且只保留 ASCII 字符。
保存字符串中的特定字符,如 é
in conseillé
。
您应该找到要删除的子字符串
为此,您需要找到子字符串的开头和结尾。
使用字符串方法可以做得更好
举个例子:
如果
在任何字符串中删除的起始字符是:�
字符串的结尾是字符串的 len:
re.sub(r'�.*','', 'Replay fortement conseillé �\x9f\x98\x82�\x9f\x98\x82')
希望对您有所帮助
根据我的经验,创建要保留的 'safe' 个字符的列表会更安全一些。您今天要做的是 'fix' 那句话,并摆脱令人讨厌的东西。但是,如果出现更多愚蠢的东西怎么办?我要求我处理的数据只保留 'standard ascii' 由企业主决定,所以我使用这个正则表达式:
text = re.sub("[^\x20-\x7E]", "", text)
这样我就删除了那个字符 class 中没有的所有内容,几乎所有标准键盘上没有的内容。走这条路你可能会有更好的运气。很难预测接下来会出现哪些垃圾字符,然后您最终会编辑正则表达式以不断添加要删除的内容。列出要保留的东西:)
您好,
我有一个字符串列表,其中包含一些奇怪的字符(例如:�)。 例如:
'Replay fortement conseillé �\x9f\x98\x82�\x9f\x98\x82'
或:
'Le papa du mois �\x9f\x91\x8a'
我想从这些字符串中删除 �\x9f\x91\x8a 和 �\x9f\x98\x82�\x9f\x98\x82。
我试过这个正则表达式:((.?)\x[0-9]([a-z]|[0-9])(.?)+)+
但它不起作用。我是正则表达式的新手,所以我寻求帮助。
处理这些字符而不是删除它们可能更好,但是如果您想在 Python 中删除它们,您可以不使用正则表达式。
text.decode("ascii", "ignore")
此行将解码 Python 中的字节数组,并且只保留 ASCII 字符。
保存字符串中的特定字符,如 é
in conseillé
。
您应该找到要删除的子字符串 为此,您需要找到子字符串的开头和结尾。
使用字符串方法可以做得更好
举个例子:
如果 在任何字符串中删除的起始字符是:�
字符串的结尾是字符串的 len:
re.sub(r'�.*','', 'Replay fortement conseillé �\x9f\x98\x82�\x9f\x98\x82')
希望对您有所帮助
根据我的经验,创建要保留的 'safe' 个字符的列表会更安全一些。您今天要做的是 'fix' 那句话,并摆脱令人讨厌的东西。但是,如果出现更多愚蠢的东西怎么办?我要求我处理的数据只保留 'standard ascii' 由企业主决定,所以我使用这个正则表达式:
text = re.sub("[^\x20-\x7E]", "", text)
这样我就删除了那个字符 class 中没有的所有内容,几乎所有标准键盘上没有的内容。走这条路你可能会有更好的运气。很难预测接下来会出现哪些垃圾字符,然后您最终会编辑正则表达式以不断添加要删除的内容。列出要保留的东西:)