正規表現って何
そもそも、正規表現って何?というのが最初の疑問だと思います。
非常に単純に言ってしまえば、正規表現とは、
「高機能な伏字」
です。
例えば、「け○っぴ」と書いてあった場合、そこの○にはなんでもいいから1文字が
入るものだと思いますよね。
逆に言うと、「けろっぴ」「けのっぴ」「けぬっぴ」などが当てはまるのだ、
と理解すると思います。
正規表現もそれと同じです。
ただし、コンピュータですので、○=1文字、よりももっと複雑な伏字が沢山用意されています。
そこでややこしい記号の羅列になってしまい、多くの人が敬遠してしまうのでしょうね。
でも、ただの超高機能な伏字なんだ、と思えばたいして難しくもありません。
正規表現には何ができるの?
じゃあ、正規表現を覚えると何かよいことがあるの?
これが次の疑問ではないでしょうか。
率直に言って、テキスト編集をたくさん行う方以外には、あまりメリットはありません。
また、テキスト編集と言っても、正規表現があなたの代わりに文章を書いてくれたりはしません。
その代わり、定型的なこと、例えば―
- 沢山のテキストファイルから、「」でくくられた部分だけを抜き出したい!
- テキストファイル中のURLっぽい文字列だけを抜き出したい!
- 「\s[数字]」という部分を、全部「(数字)」に置き換えたい!
というような作業は、正規表現を覚えれば、あなたが手でやるのの何万倍も早く、
コンピュータが一瞬で片付けてくれます。
準備
まずは正規表現の練習に使えるものを用意しましょう。
文章だけで見ていたってちっとも面白くありませんからね。
正規表現が使えるエディタ等ならなんでもいいです。
ここでは拙作の「正規表現テスター」を使って説明することにします。
マッチ
さて、正規表現の実際の説明に入る前に、用語を一つ覚えてください。
それは、「マッチ」です。
さっき、伏字の例で、「け○っぴ」には、「けのっぴ」「けろっぴ」等が当てはまる、
と言いましたが、それがつまり「マッチする」ということです。
「正規表現にマッチする」=「正規表現に当てはまる」、と覚えてください。
「『けのっぴ』は『け○っぴ』にマッチする」と言う事ができます。
最初の記号 - 「.」
さて、今日は最初の記号を1つ覚えて終りにしましょう。
最初の記号は、「.」です。「.」は半角ピリオドですよ。
これは、「なんでもいいから1文字」を表す正規表現です。
ちょうど、さっきの伏字の例に挙げた、○と一緒ですね。
ですから、最初の例を正規表現で書けば、「け.っぴ」となります。
そして、正規表現「け.っぴ」には、「けのっぴ」や「けろっぴ」がマッチします。
「1文字」と限定されていますので、「けののっぴ」や「けっぴ」はマッチしません。
練習
では、実際に練習してみましょう。
正規表現テスターを立ち上げて、まずは右側のオプションを、画像と同じようにチェックしてください。
そして、上の大きなテキストボックスに適当に言葉を入れて、その下、正規表現と書いてある右に、「け.っぴ」と入れてみます。
できたら、その右の「テスト」ボタンを押してみてください。
「け.っぴ」にマッチした文字列が、下に表示される筈です。
テキストや正規表現を色々変えて、試してみてください。
例えば「け..っぴ」にするとどうなりますか。「け.っ.」ではどうでしょうか。
実用
さて、これであなたは、正規表現の記号を1個覚えたわけです。
例えばエディタで、「○○○○年○○月」という文字列を探したい!というとき…
もう何をすればいいか分かりますね。
「正規表現で検索」のような機能を使って、「....年..月」と入れればよいのです。
ちょっと脱線
ところで、正規表現って、何で「正規表現」って言うんでしょうね。
元の英語では、「regular expression」なのですが、「regular」は、
一定の、とか、通例の、とか、規則正しい、という意味のようです。
日本語の「正規」というのは、規則ではっきり決まっていること、
というような意味のようですので、「規則がはっきり決まった表現」と取れば
意味が分からなくもないのですが…
なんとなく、「正規表現」って言われると、じゃあ正規じゃない、裏ルートの
表現があるのか、という気がしませんか。
ご指摘などはこちらへ