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

如何按字母字符拆分字母数字字符串并保留字母在右侧?

按字母拆分字母数字字符串并保留字母在右侧的实现方案

如果你需要将字母数字字符串按字母字符拆分,且让字母保留在拆分后的右侧部分,不用拼接拆分结果的话,可以试试以下两种更优的正则实现方式:

方法一:使用正向先行断言拆分

利用正则的正向先行断言定位拆分位置,这个断言只会匹配字母前的位置,不会消耗任何字符,因此能保证字母和后续内容完整保留在右侧。

示例代码:

import re
x = '1456p6'
result = re.split(r'(?=[a-zA-Z])', x)
print(result)  # 输出: ['1456', 'p6']

这个方法还支持字符串中有多个字母的场景,比如输入'789abc123',会得到['789', 'abc123'],同样符合需求。

方法二:使用findall直接匹配目标片段

如果确定字符串只有一个拆分点(即只有一处字母开头的片段),可以用re.findall直接匹配两种目标模式:开头的纯数字序列,以及字母开头的后续所有内容。

示例代码:

import re
x = '1456p6'
result = re.findall(r'^\d+|[a-zA-Z].*$', x)
print(result)  # 输出: ['1456', 'p6']

对比你之前用的re.split('(\d+)', s),它是按连续数字组拆分,会把字母单独分离出来,而上面的两种方法都能直接得到符合预期的结果,无需额外拼接操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 22:07:29