- 论坛徽章:
- 0
|
楼上Baby大神威武,perl用的炉火纯青!牛!学习了!用其他语言实现只能趟了。。。。
- import re
- in_str = '''V0.1-张三-2020/11/4 14:00
- 增加AAAA
- V0.2-张三-2020/11/4 12:00
- 调整子工作流流程(由并行改为串行)
- V0.4-张三-2020/11/4 12:00
- 去掉发邮件步骤
- 调整流程(由并行改为串行)
- V0.3-张三-2020/11/4 12:00
- 去掉发邮件步骤
- 调整流程(由并行改为串行)
- '''
- def split_by_pattern():
- pattern = re.compile(r"([Vv]\d\.\d.*?\n)")
- res = pattern.split(in_str)
- return res
- def find_versions():
- pattern = re.compile(r"([Vv]\d\.\d)")
- res = pattern.findall(in_str) # type: list
- return [float(re.sub("[Vv]", "", x)) for x in res]
- def find_latest_version():
- version_list = find_versions()
- return max(version_list)
- def find_right_next_version():
- version_list = find_versions()
- latest_version_index = version_list.index(max(version_list))
- if len(version_list) > latest_version:
- right_next = version_list[latest_version_index + 1]
- return right_next
- if __name__ == '__main__':
- latest_version = find_latest_version()
- right_next_version = find_right_next_version()
- split_list = split_by_pattern()
- selected_version_line = ""
- for item in split_list:
- if item.strip().startswith("V" + str(latest_version)):
- selected_version_line = item
- break
- selected_version_index = split_list.index(selected_version_line)
- if right_next_version is not None:
- right_next_version_line = ""
- for item in split_list:
- if item.strip().startswith("V" + str(right_next_version)):
- right_next_version_line = item
- break
- right_next_version_index = split_list.index(right_next_version_line)
- print "".join(split_list[selected_version_index:right_next_version_index])
- else:
- print "".join(split_list[selected_version_index:])
复制代码 |
|