Archive
HowTo: Extract numeric suffix from a string in Python
I recently needed to extract a numeric suffix from a string value in Python. Initially I did the following:
import re
def extractNumSuffix(value):
return (None if (search:=re.search(‘^\D*(\d+)$’, value, re.IGNORECASE)) is None else search.group(1))
Note that return has a single-line expression.
So
print(extractNumSuffix("test1030"))
prints 1030
Tried it online at:
https://repl.it/languages/python3
However, then I found out that Assignment Expressions in Python only work from Python 3.8 and up, so I changed it to this one:
import re
def extractNumSuffix(value):
search=re.search(r"^\D*(\d+)$", value, re.IGNORECASE)
return (None if search is None else search.group(1))
which should work in Python 2.x too. Don’t forget to import the regular expressions (re) module.