擅长:python、mysql、java
<p>下面是一个简短的regex解决方案,它使用re.sub公司(…):</p>
<pre><code>from re import sub
string2 = 'suppose_name_1'
string3 = 'suppose_name_22'
string4 = 'supp22ose45_na56me_45'
print [sub(r'^(?P<pretext>.*_)(?P<number>\d+)$', lambda x : '%s%d' % (x.group('pretext'), int(x.group('number')) + 1), s) for s in (string2, string3, string4)]
</code></pre>
<p>以及输出:</p>
^{pr2}$
<p>更容易阅读的版本如下:</p>
<pre><code>from re import sub
string2 = 'suppose_name_1'
string3 = 'suppose_name_22'
string4 = 'supp22ose45_na56me_45'
regex = r'^(?P<pretext>.*_)(?P<number>\d+)$'
def increment(matchObject):
return '%s%d' % (matchObject.group('pretext'), int(matchObject.group('number')) + 1)
for s in (string2, string3, string4):
print sub(regex, increment, s)
</code></pre>
<p>以及输出:</p>
<pre><code>suppose_name_2
suppose_name_23
supp22ose45_na56me_46
</code></pre>