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

Python读取白名单添加负整数ID到列表时负数转正问题排查

问题根因

负数被转为正数的核心问题出在正则替换逻辑re.sub(r'\W+', '', d):

  • 正则元字符\W的匹配范围是所有非单词字符,单词字符仅包含大小写字母、数字、下划线_,负号-不属于单词字符,会被\W命中
  • 替换操作会直接删除ID中的负号,例如-212处理后会变成212,最终存入列表的就是正数结果

修复方案

你可以根据自己的使用场景选择以下两种修复方式:

方式1:调整正则规则(兼容存在特殊字符的场景)

修改正则匹配规则,仅过滤除负号、数字之外的非法字符:

# 保留数字和负号,删除其余所有字符
tmp_d = re.sub(r'[^-\d]', '', d)
# 建议补充类型转换,避免字符串类型和整数类型的判断匹配失效
tmp_d = int(tmp_d)

方式2:直接转换类型(文件格式规范的场景)

如果你的whitelist文件格式严格,设备ID仅包含数字和负号,切分后的d除了空格没有其他多余字符,可以直接跳过正则,用更简单的方式处理:

# 去掉前后空格后直接转为整数
tmp_d = int(d.strip())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 04:15:05