Excel clean()函数的Python等效实现及正则模拟方法问询
Python 实现 Excel CLEAN() 函数的方法
1. Python 有没有直接对应 Excel CLEAN() 的函数?
Python标准库没有专门实现Excel CLEAN()功能的内置函数,但可以通过字符串的translate()方法快速实现等价效果:
def clean_with_translate(text): # 创建映射表,移除ASCII 0-31和127的不可打印字符 control_chars = dict.fromkeys(range(32) + [127]) return text.translate(control_chars)
2. 用正则表达式模拟 Excel CLEAN()
Excel的CLEAN()函数核心是移除所有ASCII不可打印控制字符(ASCII码0-31、127),用正则可以精准匹配这些字符并替换为空:
import re def clean_excel(text): # 匹配所有ASCII不可打印控制字符 return re.sub(r'[\x00-\x1F\x7F]', '', text)
说明:
\x00-\x1F覆盖了ASCII码0到31的所有控制字符(比如换行符\n、制表符\t、退格符\b等)\x7F对应ASCII的DEL删除字符- 调用
re.sub()将匹配到的字符全部替换为空,即可得到和Excel CLEAN()处理后一致的结果。
测试示例:
# 包含不可打印字符的测试文本 sample_text = "Test\x0BText\x1EMessage\x7F" print(clean_excel(sample_text)) # 输出: TestTextMessage
内容的提问来源于stack exchange,提问作者Brian Smith
相关产品推荐
相关产品推荐

