识别并删除奇怪的字符

问题描述:

我可以使用什么命令来识别和去除形成“词”,比如某些奇怪的字符:识别并删除奇怪的字符

í‰äó_ 
퀌¢í‰ä‰åí‰ä‹¢ 
it퀌¢í‰ä‰åí‰ä‹¢ 
í‰äóìgo 

从一系列的文件?这些是一些例子... 我想删除这种情况。

+0

你如何定义“奇怪”?你想过滤出不是明确的基本字母a-z的字符吗? – 2013-04-21 23:14:38

+0

它基本上是一系列英文中没有意义的字符。标点符号是否被接受? ! 。它只是那些随机字符一起出现的“字” – bb2 2013-04-21 23:21:45

+1

然后你想使用pythons字符串模块,并检查文件中的行是否在string.printable中有字符。 F3AR3DLEGEND回答了您提供该选项的问题,看看他的答案 – 2013-04-22 00:17:34

使用string模块,你已经得到了从文件中的数据后:

import string 
final_str = '' 
for char in my_str: 
    if char in string.printable: 
     final_str += char 

替代的一行:

''.join([str(char) for char in my_str if char in string.printable]) 

如何正则表达式子?

类似:

import re 

clean_name = re.sub(r'[^a-zA-Z0-9\._-]', '', dirty_name) 

添加到正则表达式其他任何允许字符。

既然你标记shellcommand-line,在这里你去

$ tr -cd [:graph:][:space:] < foo.txt 
_ 

it 
go