regex Python等效于Excel中的clean()函数

bfrts1fy  于 2022-12-30  发布在  Python
关注(0)|答案(1)|浏览(192)

在Excel中有一个名为clean()的函数,它可以删除文本中所有不可打印的字符。请参考https://support.microsoft.com/en-us/office/clean-function-26 f3 d 7 c5 - 475 f-4a 9 c-90 e5 -4b8ba987ba41#:~:text=从文件中删除%20all%20nonprintable%20characters%20and%20canon%20be%20be%20printed。
我想知道是否有任何直接的function/method in python来实现同样的效果。
另外,如何仅使用Regular expressionpython中模拟clean()功能?
任何指针都会很有帮助

qco9c6ql

qco9c6ql1#

根据您所链接到的文档,Excel中的CLEAN函数仅删除“7位ASCII代码中的前32个非打印字符(值0到31)",因此,为了模仿该函数,您可以筛选给定字符串中ord值小于32的字符:

def clean(s):
    return ''.join(c for c in s if ord(c) < 32)

或者,您可以使用正则表达式替换来删除十六进制值介于\x00\x1f之间的字符:

import re

def clean(s):
    return re.sub(r'[\x00-\x1f]+', '', s)

相关问题