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 に答える