Pythonのre.matchって何のためにあるの?

コード書いてて、思ったような動きをしないので、何でだろうと悩んでいたのが、Python の正規表現ライブラリ re の match() 関数。

いえ、単に、正規表現のマッチングをしようとしただけなんですけれどね。re.match(pattern, string) みたいな感じで。

で、結局なんでうまく動かなかったかというと、re.macth()は「もしstringの先頭で0個以上の文字が正規表現 pettern とマッチすれば……」oTL

正しくは、というか思ったような、stringの任意の位置でマッチングを取りたいのだったら re.search()を使わないといけないということらしいです。

いや、先頭でマッチさせたいなら、単に正規表現文字列を "^xxxxx" みたいにすればいいわけですよ。というか普通正規表現ってそういうものですよ。そんな関数の名前で動作を変えるなんて、一体どういう設計思想なのやら……。正規表現に位置制御が含まれているのを無視した仕様でなんとも気色悪い。というか、どういう使い道があるんだろう?