在输出文件上应用正则表达式

时间:2018-04-19 09:59:34

标签: python

我编写了一个python脚本,可以将所有版本转储到文本文件中。所有版本都以“|”分隔符号

我需要用以下条件替换所有以3开头的版本

例如1)3.7.0E应替换为03.07.00E     2)3.17.1E应替换为03.17.01E

所有单位数字应替换为0

我的输出文件看起来像

  

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

1 个答案:

答案 0 :(得分:0)

这不太好,但它会做你想要的:

 svn add  $(find . -name "*@*.png" -printf "%p@ ")

import re s = '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' l = [] # split up based on pipe for chunk in s.split('|'): if chunk.startswith('3'): new_chunk = '' # split up based on period for piece in chunk.split('.'): try: # if there's a letter, exception will be thrown x = int(piece) new_chunk += '0{}.'.format(x) if x < 10 else '{}.'.format(x) except: n = int(re.search('\d+', piece).group(0)) letter = re.search('\w', piece).group(0) new_chunk += '0{}{}'.format(n, letter) if n < 10 else piece l.append(''.join(new_chunk)) else: l.append(chunk) new_s = '|'.join([p for p in l]) print(new_s) 的值为:new_s