0

我有一个类似的python代码

            for i in re.finditer('something(.+?)"', html):

我现在试图找出在进入那个循环之前它要循环多少次......换句话说,数组 i 的长度。谁能给我一个替代但类似的代码,我得到循环的长度。

4

3 回答 3

3
x = list(re.finditer('something(.+?)"', html))

if len(x)
     ....

for i in x:
     ....

findall不是一个适当的替代品,因为它返回字符串,而不是匹配对象。

于 2013-04-23T08:59:33.343 回答
1

你不能这样做,re.finditer因为它返回一个迭代器,它不知道它什么时候完成,直到它完成(因为它在每次迭代中找到下一个匹配)......,你必须使用re.findall.

matches = re.findall('something(.+?)"', html)
num_loops = len(matches)

或者如果您确实需要匹配对象,请使用@thg435 的方法。

于 2013-04-23T08:57:13.620 回答
1

finditer返回找到的结果。没有办法finditer提前告诉你要循环多少次。

你需要使用别的东西。要么re.findall或可能re.search得到长度

于 2013-04-23T08:57:50.343 回答