如何解析XX-XX-XXXX模式并按该格式格式化字符串?
解决XX-XX-XXXX格式的字符串格式化问题
修正后的代码
pattern = "XX-XX-XXXX" item = "abcdefghk" # 获取格式中每一段的长度 segment_lengths = [len(seg) for seg in pattern.split("-")] # 按长度拆分字符串 segments = [] start = 0 for length in segment_lengths: segments.append(item[start:start+length]) start += length # 用连接符拼接结果 result = "-".join(segments) print(result)
原代码的问题
- 初始已截取第一个段的内容,循环却重复处理所有段,导致结果多了一次冗余拼接逻辑,最终出现多余的分段。
- 每次循环都执行
print(fitem),输出了中间过程而非最终结果。 - 未严格按照格式要求的长度截取内容,最后一段错误地取到了超出格式长度的字符。
代码逻辑说明
- 将格式字符串
pattern按-拆分,提取每个分段的长度,得到列表[2,2,4]。 - 从
item的起始位置开始,按分段长度依次截取子串,存入列表segments。 - 用
-连接所有子串,得到符合目标格式的最终结果。
运行修正后的代码,输出为:ab-cd-efgh
内容的提问来源于stack exchange,提问作者thedataengineer
相关产品推荐
相关产品推荐

