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

Python如何通过正则实现指定模式的字符串分割

解决方案

你原正则里的\D+会匹配任意长度的连续非数字字符,这就是连续无数字前缀字母被合并成单个元素的原因。只要调整匹配逻辑,优先匹配「连续数字+紧跟的1个小写字母」的组合,剩余的小写字母按单个匹配就能得到预期结果。

正确实现代码:

import re

string = "ff19shh24c"
# 注意匹配顺序:优先匹配数字+字母的整体,再匹配单个小写字母
parts = re.findall(r'\d+[a-z]|[a-z]', string)
print(parts)

运行输出:

['f', 'f', '19s', 'h', 'h', '24c']

正则规则说明

  • \d+[a-z]:匹配1位及以上连续数字,加上紧跟的1个小写字母,对应「连续数字与其后紧跟的1个小写字母作为整体元素」的要求
  • 正则的|是或逻辑,把组合匹配规则放在前面,是为了避免数字后面跟着的字母被单个匹配规则提前拆分
  • [a-z]:匹配单个小写字母,由于组合规则已经提前把数字连带其后的字母匹配完成,剩下的字母全是无数字前缀的内容,按单个匹配即可,对应「无数字前缀的单个字母单独作为元素」的要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 07:33:19