You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何移除字符串开头的NUL空字符

前导NUL字符无法用默认lstrip移除的解决方案

问题原因

常规str.lstrip()方法无参数调用时,仅会移除Unicode标准定义的空白字符(空格、换行、制表符、回车等)。你遇到的前导空字符是ASCII码为0的NUL字符(转义表示为\x00),不在默认移除列表中,因此无法被常规strip类方法删除。

可用解决方法

方法1:给lstrip指定要删除的NUL字符

直接在lstrip参数中传入NUL字符的转义形式即可仅删除前导NUL:

# 仅删除前导NUL字符
exp = exp.lstrip('\x00')

如果同时存在前导NUL和常规空白字符,可以合并传入要删除的字符:

# 同时删除前导NUL、空格、换行、制表符、回车
exp = exp.lstrip('\x00 \n\t\r')

方法2:使用正则匹配批量删除前导NUL

如果需要更灵活的匹配规则(比如混合前导NUL和任意空白),可以用正则实现:

import re
# 仅删除前导NUL
exp = re.sub(r'^\x00+', '', exp)

# 同时删除前导NUL和所有类型的常规空白
exp = re.sub(r'^[\x00\s]+', '', exp)

方法3:删除字符串中所有位置的NUL(非仅前导时使用)

如果你需要移除字符串里所有位置的NUL,不止前导,可以直接用替换方法:

exp = exp.replace('\x00', '')

效果验证

你可以用以下代码确认NUL是否被完全删除:

# 打印字符串前10个字符的ASCII码,确认是否还有0值
print([ord(c) for c in exp[:10]])

如果输出中没有0,就说明前导NUL已经清理完成。

内容的提问来源于stack exchange,提问作者shee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 20:18:00