如何拆分字母数字混合字符串 仅在首个字母数字分界处插入空格
你可以用正则替换的方式直接实现需求,核心是匹配「连续字母后紧跟连续数字且数字到单词末尾没有其他字母」的分界,在中间插入空格即可。
完整可运行代码
import re testString = "Brijesh Tiwari810663 A14082014RGUBWA" # 正则规则:匹配字母+数字结尾的单词中,字母和数字的分界 result = re.sub(r'([a-zA-Z])(\d+)\b', r'\1 \2', testString) print(result) # 输出:Brijesh Tiwari 810663 A14082014RGUBWA
规则说明
([a-zA-Z]):捕获分界处的前一个字母,对应替换参数里的\1(\d+):捕获分界后连续的数字序列,对应替换参数里的\2\b:单词边界限定,保证匹配的数字序列位于单词末尾,不会匹配数字后还有其他字母的场景(比如示例里的A14082014RGUBWA,数字后还有字母,不会触发替换)
如果你需要实现「仅字母序列长度大于等于2时才插入空格」的逻辑,和你第一个示例里club39不替换的表现对齐,可以把正则修改为r'([a-zA-Z]{2,})(\d+)\b'即可。
内容的提问来源于stack exchange,提问作者Gaurav Batheja
相关产品推荐
相关产品推荐

