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

如何使用正则表达式仅匹配正好6位的数字完成字符串拆分?

仅拆分正好6位数字的正则实现

错误原因

  • 原有正则r'(\d{6}?)'未限制匹配的6位数字前后的字符类型,只要出现连续6个数字就会触发匹配,因此7位数字的前6位会被单独拆分出来
  • 正则中加在\d{6}后的?没有实际作用,固定次数匹配的规则不受非贪婪标识影响

解决方法

使用零宽断言限制匹配的6位数字前后不能为数字,确保仅匹配恰好连续6位的数字,修改后的正则为r'((?<!\d)\d{6}(?!\d))':

  • (?<!\d):负向后行断言,要求匹配位置的前一个字符不是数字
  • \d{6}:精确匹配6个连续数字
  • (?!\d):负向前行断言,要求匹配位置的后一个字符不是数字
  • 外层括号为捕获组,用于让re.split将匹配到的6位数字保留在拆分结果中

完整代码

import re

txt = 'Hello.this.is232323dsSDdsadasd3434343'
split_result = re.split(r'((?<!\d)\d{6}(?!\d))', txt)
print(split_result)

输出结果

['Hello.this.is', '232323', 'dsSDdsadasd3434343']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 20:57:04