* U K I Y A H O N P O * Nel mezzo del cammin di nostra vita mi ritrovai per una selva oscura, che la diritta via era smarrita. |
正規表現講座/1 のバックアップの現在との差分(No.1)正規表現って何そもそも、正規表現って何?というのが最初の疑問だと思います。 非常に単純に言ってしまえば、正規表現とは、 「高機能な伏字」 です。 例えば、「け○っぴ」と書いてあった場合、そこの○にはなんでもいいから1文字が 入るものだと思いますよね。逆に言うと、「けろっぴ」「けのっぴ」「けぬっぴ」などが当てはまるのだ、 と理解すると思います。 正規表現もそれと同じです。 ただし、コンピュータですので、○=1文字、よりももっと複雑な伏字が沢山用意されています。 そこでややこしい記号の羅列になってしまい、多くの人が敬遠してしまうのでしょうね。 でも、ただの超高機能な伏字なんだ、と思えばたいして難しくもありません。 正規表現には何ができるの?じゃあ、正規表現を覚えると何かよいことがあるの?これが次の疑問ではないでしょうか。 率直に言って、テキスト編集をたくさん行う方以外には、あまりメリットはありません。 また、テキスト編集と言っても、正規表現があなたの代わりに文章を書いてくれたりはしません。 その代わり、定型的なこと、例えば―
準備まずは正規表現の練習に使えるものを用意しましょう。文章だけで見ていたってちっとも面白くありませんからね。 正規表現が使えるエディタ等ならなんでもいいです。 ここでは拙作の「正規表現テスター」を使って説明することにします。 マッチさて、正規表現の実際の説明に入る前に、用語を一つ覚えてください。それは、「マッチ」です。 さっき、伏字の例で、「け○っぴ」には、「けのっぴ」「けろっぴ」等が当てはまる、 と言いましたが、それがつまり「マッチする」ということです。 「正規表現にマッチする」=「正規表現に当てはまる」、と覚えてください。 「『けのっぴ』は『け○っぴ』にマッチする」と言う事ができます。 最初の記号 - 「.」さて、今日は最初の記号を1つ覚えて終りにしましょう。最初の記号は、「.」です。「.」は半角ピリオドですよ。 これは、「なんでもいいから1文字」を表す正規表現です。 ちょうど、さっきの伏字の例に挙げた、○と一緒ですね。 ですから、最初の例を正規表現で書けば、「け.っぴ」となります。 そして、正規表現「け.っぴ」には、「けのっぴ」や「けろっぴ」がマッチします。 「1文字」と限定されていますので、「けののっぴ」や「けっぴ」はマッチしません。 練習では、実際に練習してみましょう。 正規表現テスターを立ち上げて、まずは右側のオプションを、画像と同じようにチェックしてください。そして、上の大きなテキストボックスに適当に言葉を入れて、その下、正規表現と書いてある右に、「け.っぴ」と入れてみます。 できたら、その右の「テスト」ボタンを押してみてください。 「け.っぴ」にマッチした文字列が、下に表示される筈です。 テキストや正規表現を色々変えて、試してみてください。 例えば「け..っぴ」にするとどうなりますか。「け.っ.」ではどうでしょうか。 実用さて、これであなたは、正規表現の記号を1個覚えたわけです。例えばエディタで、「○○○○年○○月」という文字列を探したい!というとき… もう何をすればいいか分かりますね。 「正規表現で検索」のような機能を使って、「....年..月」と入れればよいのです。 ちょっと脱線ところで、正規表現って、何で「正規表現」って言うんでしょうね。 元の英語では、「regular expression」なのですが、「regular」は、 一定の、とか、通例の、とか、規則正しい、という意味のようです。 日本語の「正規」というのは、規則ではっきり決まっていること、 というような意味のようですので、「規則がはっきり決まった表現」と取れば 意味が分からなくもないのですが… なんとなく、「正規表現」って言われると、じゃあ正規じゃない、裏ルートの 表現があるのか、という気がしませんか。ご指摘などはこちらへ |