2020年6月30日 / 105次阅读 / Last Modified 2020年10月5日
re模块,字符串
更准确的说法,是对含有非数字的字符串中的,最右部分的数字进行加1操作。
本人在项目中实现的一个小功能,记录一下。
def incr14Str(string):
"""Increase one (+1) in the last number part of string."""
rt = re.search(r'(\d+)([^\d]*$)', string)
if rt:
pos_left = rt.span()[0]
num = int(rt.groups()[0])
numStr = ''
for i in range(len(rt.groups()[0])-len(str(num+1))):
numStr += '0'
else:
numStr += str(num+1)
return string[:pos_left] \
+ numStr[len(numStr)-len(rt.groups()[0]):] \
+ rt.groups()[1]
else:
raise ValueError('No suitable number segment found to +1.')
如果遇到***999***这样的情况,+1后会变成***000***,函数优先确保字符串的长度不变。
此函数已收录进我个人函数库项目common,项目有对应的单元测试代码。
-- EOF --
本文链接:https://www.pynote.net/archives/2105
前一篇:搜索子串的方法
后一篇:用sys.getsizeof查看对象占用内存数
Ctrl+D 收藏本页
©Copyright 麦新杰 Since 2019 Python笔记