如何用正则表达式处理Python生成的版本文件,格式化以3开头的版本号?
Python脚本:版本号处理与导出
这里有一个完全符合你需求的Python实现,能把版本号按规则处理后用|分隔导出到文本文件:
核心处理逻辑
首先定义一个函数来处理单个版本号,针对以3.开头的版本做补前导0的操作:
def process_version(version): # 仅处理以3.开头的版本(避免误处理13.x这类版本) if version.startswith('3.'): parts = version.split('.') processed_parts = [] for part in parts: # 分离数字部分和后缀(比如E、a这类非数字字符) num_str = '' suffix = '' for char in part: if char.isdigit(): num_str += char else: suffix += char # 数字部分补前导0到两位 processed_num = num_str.zfill(2) processed_parts.append(processed_num + suffix) return '.'.join(processed_parts) # 非3开头的版本直接返回原字符串 else: return version
完整脚本(含导出功能)
把所有版本批量处理后写入文件:
# 你的版本列表(可以替换成你实际的版本数据) versions = [ "3.7.0E", "3.7.1E", "3.7.2E", "3.7.3E", "3.7.4E", "3.7.5E", "16.2.1", "16.2.2", "3.8.0E", "16.3.1", "16.3.2", "16.3.3", "16.3.1a", "16.4.1", "16.4.2", "3.17.1E", "3.7.11E" ] # 批量处理所有版本 processed_versions = [process_version(v) for v in versions] # 用|符号连接处理后的版本 output_content = '|'.join(processed_versions) # 写入到文本文件(可以修改文件名) with open('processed_versions.txt', 'w', encoding='utf-8') as f: f.write(output_content)
效果说明
运行脚本后,processed_versions.txt里的内容会是:
03.07.00E|03.07.01E|03.07.02E|03.07.03E|03.07.04E|03.07.05E|16.2.1|16.2.2|03.08.00E|16.3.1|16.3.2|16.3.3|16.3.1a|16.4.1|16.4.2|03.17.01E|03.07.11E
完全符合你要求的规则:
- 3.7.0E → 03.07.00E(单个数字补前导0)
- 3.17.1E → 03.17.01E(数字部分补到两位,后缀保留)
- 非3开头的版本保持原样
内容的提问来源于stack exchange,提问作者SHIVAS RAINA
相关产品推荐
相关产品推荐

