对含有非数字的字符串进行加1操作

2020年6月30日 / 3次阅读 / Last Modified 2020年7月1日
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***。

-- EOF --

本文链接:https://www.pynote.net/archives/2105

留言区

电子邮件地址不会被公开。 必填项已用*标注


前一篇:
后一篇:

More


©Copyright 麦新杰 Since 2019 Python笔记

go to top