2024-06-16 11:13:20 发布
网友
我正在用python处理大量CSV文件。这些文件是从外部组织接收的,并使用一系列编码进行编码。我想找到一种自动方法来删除以下内容:
我有一个产品叫“找到并更换它!”这将使用正则表达式,因此使用正则表达式解决上述问题的方法将非常有用。
谢谢你
试试这个:
clean = re.sub('[\0\200-\377]', '', dirty)
其思想是匹配每个NUL或“high ASCII”字符(即0和那些不适合7位的字符)并删除它们。可以在找到字符时添加更多字符,例如ASCII ESC或BEL。
或者这个:
clean = re.sub('[^\040-\176]', '', dirty)
其思想是只允许有限范围的“可打印ASCII”,但请注意,这也会删除换行符。如果要保留换行符或制表符等,只需将它们添加到括号中。
其思想是匹配每个NUL或“high ASCII”字符(即0和那些不适合7位的字符)并删除它们。可以在找到字符时添加更多字符,如ASCII ESC或BEL。
将任何不需要的字符替换为空白(删除它):
clean = re.sub('[^\s!-~]', '', dirty)
这允许所有空白(空格、换行符、制表符等)和所有“普通”字符(!是第一个可打印的ascii,而~是最后一个可在十进制128下打印的ascii)。
!
~
您可能感兴趣的另一种选择是:
import string clean = lambda dirty: ''.join(filter(string.printable.__contains__, dirty))
它只是从接收到的脏字符串中筛选出所有不可打印的字符。
>>> len(clean(map(chr, range(0x110000)))) 100
试试这个:
其思想是匹配每个NUL或“high ASCII”字符(即0和那些不适合7位的字符)并删除它们。可以在找到字符时添加更多字符,例如ASCII ESC或BEL。
或者这个:
其思想是只允许有限范围的“可打印ASCII”,但请注意,这也会删除换行符。如果要保留换行符或制表符等,只需将它们添加到括号中。
试试这个:
其思想是匹配每个NUL或“high ASCII”字符(即0和那些不适合7位的字符)并删除它们。可以在找到字符时添加更多字符,如ASCII ESC或BEL。
或者这个:
其思想是只允许有限范围的“可打印ASCII”,但请注意,这也会删除换行符。如果要保留换行符或制表符等,只需将它们添加到括号中。
将任何不需要的字符替换为空白(删除它):
这允许所有空白(空格、换行符、制表符等)和所有“普通”字符(
!
是第一个可打印的ascii,而~
是最后一个可在十进制128下打印的ascii)。您可能感兴趣的另一种选择是:
它只是从接收到的脏字符串中筛选出所有不可打印的字符。
相关问题 更多 >
编程相关推荐