032:特定の文字・文字列の出現回数を調べる
文字が何回現れるか数える
Python には文字型はなく、文字の表現に長さ 1 の文字列を使います。 なので特定の文字が何回現れるか数えるには count メソッドがそのままつかえます。
>>> s = 'aaaabbaabbaa\n'
>>> s.count('a')
8
正規表現に何回マッチするか数える
ある正規表現に重複せずマッチする回数を数えるには re.findall メソッドにて得られるマッチした文字列の リストの長さを数えます。
>>> import re
>>> s = 'aaaabbaabbaa\n'
>>> re.findall('a+', s)
['aaaa', 'aa', 'aa']
>>> len(re.findall('a+', s))
3
メモリ量節約のため文字列リストを一度に得ないようにするには re.findall を re.finditer に置き換え、ループを回します。以下のようになります。
>>> i = 0
>>> for m in re.finditer('a+', s):
... i += 1
...
>>> print i
3
もしくは次のようにします。
>>> i = -1
>>> for i, m in enumerate(re.finditer('a+', s)):
... pass
...
>>> i += 1
>>> print i
3