2

我有一个格式为results_item12345. 数字部分的长度为四位或五位。字母总是小写的,并且在非数字部分的某处总是有一个下划线。

我尝试使用以下方法提取它:

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

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

4

3 回答 3

7

假设您关心字符串末尾的数字,以下表达式匹配字符串末尾的 4 或 5 位数字。

\d{4,5}$

否则,以下将是匹配所提供要求的完整正则表达式。

^[a-z_]+\d{4,5}$
于 2012-10-11T19:11:04.943 回答
2

如果您只想匹配字符串中的任何数字,您可以搜索:

r'[\d]{4,5}'

如果您需要某种类型的验证,您需要使用:

r'^result_item[\d]{4,5}$'
于 2012-10-11T19:13:17.640 回答
1
import re    
a="results_item12345"
pattern=re.compile(r"(\D+)(\d+)")
x=pattern.match(a).groups()
print x[1]
于 2014-05-27T11:12:32.377 回答