Python中的正则表达式,用于在字母串后获取数字串

时间:2012-10-11 19:09:13

标签: python regex

我有一个格式为results_item12345的字符串。数字部分长度为四位或五位。字母将始终为小写,并且在非数字部分的某处始终会有下划线。

我尝试使用以下内容提取它:

 import re
 string = 'results_item12345'
 re.search(r'[^a-z][\d]',string)

但是,我只得到最左边的两位数字。我怎样才能得到整个数字?

3 个答案:

答案 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]