This blog post is
13 years old! Most likely, its content is outdated.
Especially if it's technical.
I've just uploaded my second Python Cookbook recipe. It's unfortunately not rocket science but it's application is potentially very useful. With this little function you can generate the next number in a string that contains at least one number.
The mini unittest is quite interesting perhaps:
$ python increment_strings.py
from 10dsc_0010.jpg to 10dsc_0011.jpg
from dsc_9.jpg to dsc_10.jpg
from 0000001.exe to 0000002.exe
from ref-04851 to ref-04852
- Previous:
- Playing with Reverend Bayesian
19 October 2005
- Next:
- Pandora - a great Internet radio
21 October 2005
- Related by Keyword:
- Python Cookbook arrived
05 April 2005
- Indent text like email clients do
11 November 2004
- PLEAC
31 October 2003
- Related by Text:
- Be very careful with your add_header in Nginx! You might make your site insecure
11 February 2018
- jQuery and Highslide JS
08 January 2008
- I'm back! Peterbe.com has been renewed
05 June 2005
- Anti-McCain propaganda videos
12 August 2008
- I'm Prolog
01 May 2007
import re
def increment(s):
....re.sub(r'\d+(?=[^\d]*$)', lambda m: str(int(m.group())+1).zfill(len(m.group())), s)
It's also faster. If you think it's too complex you can break it up.
last_number = re.compile(r'\d+(?=[^\d]*$)')
def increment(string):
....def increment_number(match):
........num_str = match.group(1)
........str( int(num_str) + 1).zfill( len(num_str) )
....return last_number.sub(increment_number, string)