如何拆分字母数字混合字符串,按单词与数字分组输出?
实现方案
你这个场景用正则匹配是最简洁的,核心逻辑是用正则分别提取连续字母段和连续数字段,再按需求分组即可。
完整代码示例(Python)
import re # 原始字符串 raw = 'hello0192239world0912903spam209394' # 第一步:拆分出所有字母、数字片段 split_result = re.findall(r'[a-zA-Z]+|\d+', raw) # 输出第一步需求的逗号分隔结果 print(', '.join(split_result)) # 第二步:两两分组得到目标嵌套列表 group_result = [list(pair) for pair in zip(split_result[::2], split_result[1::2])] print(group_result)
代码说明
- 正则
r'[a-zA-Z]+|\d+'含义:[a-zA-Z]+:匹配1个及以上连续的英文字母|:或逻辑\d+:匹配1个及以上连续的数字
re.findall会按字符串从左到右的顺序,返回所有符合匹配规则的片段,正好得到你要的拆分序列- 分组逻辑利用列表切片
[::2]取所有偶数位(字母段)、[1::2]取所有奇数位(数字段),再用zip两两配对即可
内容的提问来源于stack exchange,提问作者Passaro
相关产品推荐
相关产品推荐

