Python提取子串时包含参考定位字符的更简洁实现方案
提取目标子串的简洁实现方案
以下是不同场景下的更优实现方式:
- 场景1:明确目标子串固定为10位、且以
s2为起始标识
直接按起始索引+固定长度截取即可,避免硬编码尾部偏移量:s1 = "sp - disc - auto - B08BY4V3NW - 18cb mold" s2 = "B0" start = s1.index(s2) print(s1[start:start+10]) - 场景2:字符串始终用
-作为分隔符,目标子串的位置固定
直接拆分字符串取对应位置即可,完全不需要计算索引:s1 = "sp - disc - auto - B08BY4V3NW - 18cb mold" print(s1.split(" - ")[3]) - 场景3:字符串格式不固定,仅知道目标子串是
B0开头的10位字母数字组合
用正则匹配最灵活,适配各种不规则格式:import re s1 = "sp - disc - auto - B08BY4V3NW - 18cb mold" target = re.search(r'B0[A-Z0-9]{8}', s1).group() print(target)
你原有代码中的len("")实际是无效语句(空字符串长度为0),尾部的-12属于硬编码偏移量,只要字符串后缀发生变化就会输出错误结果,上述方案的可读性和鲁棒性都更优。
内容的提问来源于stack exchange,提问作者acaciagrove
相关产品推荐
相关产品推荐

