Python正则表达式组具有多个可能的值

时间:2013-06-05 03:26:43

标签: python regex python-2.x

好的,所以我在python中有这个小的正则表达式程序

#!/usr/bin/python
import re
string = "val1=1 val2=2 val3=234"
valfinder = re.compile('val\d=(?P<values>\d)')
vals = valfinder.search(string)
print(vals.group('values'))

打印出来1.
它与所有其他值匹配的方式是什么? 我该如何访问它们?

1 个答案:

答案 0 :(得分:1)

使用findall()获取匹配项列表作为字符串,或使用finditer()获取匹配对象的迭代器,例如:

>>> valfinder.findall(string)
['1', '2', '2']
>>> for match in valfinder.finditer(string):
...     print match.group('values')
...
1
2
2

请注意,findall()的行为会根据正则表达式中的捕获组数量而发生变化。如果没有捕获组,则结果中的每个元素都是整个匹配,如果有一个捕获组,则每个元素将是该组匹配的任何组件,如果有多个组,则每个元素将是组匹配的元组