0

好的,所以我在 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.
它与所有其他值匹配的方法是什么?我将如何访问它们?

4

1 回答 1

1

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

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

请注意,findall()更改的行为取决于您的正则表达式中有多少个捕获组。如果没有捕获组,则结果中的每个元素都是整个匹配,如果有一个捕获组,每个元素将是该组匹配的任何内容,如果有多个组,每个元素将是组匹配的元组.

于 2013-06-05T03:32:37.943 回答