Differences

This shows you the differences between two versions of the page.

py:lesson19 [2011/05/18 18:08] (current)
Line 1: Line 1:
 +[[python_curriculum|目次へ]]
 +
 +====== 正規表現をつかった文字列検索 ======
 +
 +[TODO:動物さん]
 +
 +文字列の中にある文字列が含まれているか、ということを調べるのに、find とか index とかそういう書き方を紹介したのはけっこう前のことです。これだけでもまあまあの仕事ができますが、今回紹介する「正規表現」という記法を覚えると、より複雑な条件での文字列検索ができるようになります。
 +
 +何が「正規」で何が「表現」なんだか、とつい考えがちになりますが、毎度のことながら、用語の意味はあまり考えなくて構いません。'regular expression' というのを訳しただけでしょう。
 +
 +さて、正規表現というのは、文字列の検索や変更のルールを記述するために開発された(って言うの?)、pythonとは独立した言語といっていいんじゃないでしょうか。前に、SQLってのはデータ問合せのために存在する独立の言語である、みたいな言い方をしたような気がしますが、これに似ています。正規表現の使い方を完全にマスターするのは相当つらいです。ここでは、ああ役に立つんだね、という気配を知る程度の紹介にとどめる予定です。実際のところ、筆者だって完全にマスターしてません。
 +
 +さて、正規表現というツールは、pythonにおいてはモジュールとして提供されています。なのでまずはインポート。下のようなものをインポートします。
 +
 +<code>
 +>>> import re
 +</code>
 +
 +Regular Expression だから、re なんでしょうね。短く書けていい感じです。
 +
 +こいつの使い方として、まずは「正規表現臭さ」の比較的少ない例から示してみます。
 +
 +<code>
 +>>> print re.search('4', '12345')
 +<_sre.SRE_Match object at 0x01969B48>
 +>>> print re.search('A', '12345')
 +None
 +</code>
 +
 +re.search という関数の使い方ですね。最初の引数が「探したい部分文字列」、次の引数が「探す対象の文字列」です。中身が含まれるときは、変な表示が帰ってきます。あとでこの値を変数に受け止めて、改めて詳細を調べることにしますが、まずは、マッチしたときは「検索結果オブジェクト」という種類のオブジェクトが発生するのだととらえてくれればよいです。マッチしないときは、Noneが帰ってきます。
 +
 +(つづき執筆中)
 +
 +
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki