「正規」という言葉から何を連想するだろう?
自分の場合、仕事柄、「正規表現」「正規化」「正規分布」といった言葉を連想する。
一見、堅苦しそうな言葉ではあるが、日常会話でも、「正規雇用」、「正規品」、「正規ルート」といった言葉を使ったり、目にしたりしているのではないだろうか?
では、「正規」が意味かといえば「規則に基づいている」という意味になる。英語だと「Regular」になる。
辞典によっては「正式に決められている」としている場合もある。
で、今回は「正規」という言葉が使われているなかでも「正規表現」について触れてみたいと思う。
以下の文字列を見て、何をイメージするだろうか?
- ^[0-9]{3}-{0-9]{4}$
これを見て、郵便番号をイメージできた人は、正規表現が理解できている人だと思う。
正規表現では1文字ずつ、条件を指定することになる。
上記では、以下のような条件を指定している。
- ^:右側で指定した文字から始まる
- [] :この中に記述した1文字と一致
0-9(0123456789と同意) - {}:この中で指定した回数、左で指定した文字が続く
{3}の場合は3回、{4}の場合は4回 - -:-と完全一致
- $:左側で指定した文字で終わる
郵便番号は3桁の数字と4桁の数字で構成されているので上記の正規表現を文章で訳すと以下のようになる。
- 数字3桁で始まり次の文字が-(ハイフォン)そして次が数字4桁で終わる
正規表現というのは文字列(文字データ)を扱う場合に、文字列が決められた書式で入力されているのかを照合する際に使用する。
よくあるのが、WEBで郵便番号を入力すると、ハイフォン(-)は不要ですとか、逆に必要とメッセージが表示されたりするが、あれを実現する時に正規表現を使用する。
これだけの説明では正規表現とはどういうものなのか、もう一つ分からないと思う。
それほど、正規表現はわかりにくい。
本やホームページで正規表現について記述されているものは多数あるが、わかりやすいというものには、出会ったことがない。
これは、作り手側に責任があるわけではなく、正規表現の仕組み自体がわかりにくいので、それを、分かりやすく書けということに無理があるからだ。
正規表現については、鉄棒の逆上がりと同じで、いくら文章で説明しても伝えることは難しい。
「やってみせ、言って聞かせて、させてみせ、ほめてやらねば、人は動かじ」という山本五十六の教育に関する有名な言葉がある。
この言葉、正規表現を伝えるということに対してピッタリ当てはまる。
正規表現について何の知識もない人に、いきなり、言って聞かせても伝わらない。「やってみせる」というステップが必要になる。
やってみせることで、正規表現とはどんなものかが見えてくる。
リンゴを見たことがない人にリンゴを伝える
よく言われる、リンゴを見たことがない人にリンゴとはどういうものかを言葉で伝えるようなものだ。
リンゴというのは人の拳くらいの大きさで赤くて丸い果物と説明されても人によってイメージするものは異なるだろう。
この説明では中がどうなっているのか?どれくらいの重さなのか?とリンゴの情報が抜けてしまっている。
だからといって、全ての情報を言葉で説明されると今度はイメージさえできなくなってしまう。
このため、まず、やってみせるという作業が必要になる。
リンゴだと現物を見せて、中を割って食べてみせる。
これだけで、自分が言葉で説明したリンゴに関する情報とは比較にならないほど多くの情報が伝わったはずだ。
最後に実際に自分でリンゴを触れたり、食べたりすることでリンゴがどういうものなのか?がハッキリと伝わる。
その上で、リンゴに関する知識を伝える
- 直径約3~15 センチメートル
- 重さ約35 - 1000グラム
- 外皮の色は赤や黄緑または黄色
この順序が重要。
そして最後に「させてみせ」となる。
実際に、リンゴを採って皮をむいて食べてみる。
これで、見ているだけだと伝わってこなかった香り、味などの情報が伝わってくる。
そして、色んなリンゴの情報が伝わってきてリンゴがどんなものかが、わかると、嬉しくなる。
これが、体験することで感じられる「ほめてやる」ということになる。
一時期、話題になったわからなかったことが突然、わかるようになった時の感覚、「アハ体験」と説明した方が理解しやすいかもしれない。
自己啓発本を読んで面白かったというのは、「言って聞かせる」の部分しか行っていないことになる。
実際に「やってみて」という部分が一番重要で、「やってみる」ことで理解できていなかったところが見えてきたり、理解できていなかったところが理解できるようになる。