home changes contents help options

文字列の先頭や末尾にのみマッチしたいときがあります。

たとえば、「山田」さんを取り出したいが、「小山田」さんはマッチさせたくないとき。
>>> import re
>>> members = 'yamada hirobumi\nkoyamada kiyotako\nsuzuki sanetomi\nyamada aritomo'
>>> print members
yamada hirobumi
koyamada kiyotako
suzuki sanetomi
yamada aritomo
普通のマッチでは小山田さんもヒットします。
>>> print re.findall('yamada.*',members)
['yamada hirobumi', 'yamada kiyotako', 'yamada aritomo']
行頭を指定する正規表現 ^ を使うと、最初の人物しかヒットしません。
>>> print re.findall('^yamada.*',members)
['yamada hirobumi']
re.Mオプションを追加して、multilineモードを指定すると、きちんとヒットします。
>>> print re.findall('^yamada.*',members,re.M)
['yamada hirobumi', 'yamada aritomo']
行末をヒットさせたい場合は $ を使います。
>>> print re.findall('.*o$',members,re.M)
['koyamada kiyotako', 'yamada aritomo']

Multilineモードについては、"http://www.python.jp/doc/release/lib/matching-searching.html"を参考にしました。