我有一个格式为results_item12345
的字符串。数字部分长度为四位或五位。字母将始终为小写,并且在非数字部分的某处始终会有下划线。
我尝试使用以下内容提取它:
import re
string = 'results_item12345'
re.search(r'[^a-z][\d]',string)
但是,我只得到最左边的两位数字。我怎样才能得到整个数字?
答案 0 :(得分:7)
假设您仅关心字符串末尾的数字,以下表达式匹配字符串末尾的4或5位数。
\d{4,5}$
否则,以下将是与提供的要求匹配的完整正则表达式。
^[a-z_]+\d{4,5}$
答案 1 :(得分:2)
如果您想匹配字符串中的任何数字,您可以搜索:
r'[\d]{4,5}'
如果您需要某种验证,则需要使用:
r'^result_item[\d]{4,5}$'
答案 2 :(得分:1)
import re
a="results_item12345"
pattern=re.compile(r"(\D+)(\d+)")
x=pattern.match(a).groups()
print x[1]