2013-04-23 78 views
0

我有一个像如何得到一个数组的索引lenth在python

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

我现在想一个Python代码,找出它有多少次去循环才去那loop..in其他单词i的长度。 任何人都可以给我一个替代但类似的代码与我得到循环的长度。

+2

你能详细说明为什么你需要事先知道长度吗? – georg 2013-04-23 09:03:00

+0

我想用百分比显示活动的进度。 – 2013-04-23 10:31:33

回答

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

if len(x) 
    .... 

for i in x: 
    .... 

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

1

你不能做到这一点与re.finditer,因为它返回一个迭代时,它的完成,直到它(因为它发现在每次迭代的下一场比赛)......不知道,你得使用re.findall

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

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

+0

如何实现re.findall以及获取索引号? – 2013-04-23 08:59:11

+1

@Abul Hasnat你只需在列表中使用'len(..)'。如果你想要每个匹配的索引号,那么在枚举(re.findall(...))中输入'for i,m' – jamylak 2013-04-23 09:01:39

1

finditer返回结果,因为它发现它们。 finditer没有办法告诉你你会提前循环多少次。

您需要使用别的东西。无论是re.findall或可能re.search拿到长度

相关问题