文字をさがす
あなたは毎日、これを使っている
ウェブページで Ctrl+F(Macなら ⌘F)を押して、ことばをさがしたことはありますか。あの検索窓の裏には、じつは小さな言語が住んでいます。このコースの主役、正規表現です。
身がまえなくて大丈夫です。正規表現は、数文字で書ける、世界でいちばん小さい部類の言語です。そして書いたものがその場で動くので、ことばの手ざわりだけで覚えられます。
さがしてみる
下の実験室で、本文の中から「ねこ」がさがし出されています。もようの欄を、ほかのことば——たとえば「こ」1文字——に書きかえてみてください。
こねこは、ねこのこ。
「ねこ」では2か所、「こ」なら4か所が塗られたはずです。打ちかえた瞬間に塗りなおされるので、このページの実験室はぜんぶ、消しゴムのいらない落書き帳だと思ってください。
「もよう」という考え方
このコースでは、検索の指示書のことを**もよう(パターン)**と呼びます。なぜ「もよう」なのか。それはこの言語が、特定のことばではなく、ことばのかたちを言い当てるための言語だからです。
たとえばあなたは「090-1234-5678」を見た瞬間、電話番号だと分かります。中身の数字を読む前に、並びのかたち——数字、数字、数字、棒、数字……——を見ているからです。日付っぽさ、郵便番号っぽさ、メールアドレスっぽさ。人間が一目で見抜く「っぽさ」を、文字で書き下せるようにしたものが正規表現です。
今日のもよう「ねこ」は、その いちばん素朴な場合です。文字をそのまま並べたもようは、その文字の並びそのものに当てはまる。あたりまえに見えますが、これが全部の土台になります。
誠実すぎる読み手、ふたたび
実験室のもようを「ねこ」のままにして、本文を ネコと猫とねこ に書きかえてみてください。塗られるのは最後の「ねこ」だけです。
カタカナの「ネコ」も、漢字の「猫」も、当てはまりません。正規表現は、コース1のコンピュータと同じ世界一誠実な読み手で、書いたとおりの文字だけをさがします。「ねこなんだから察してよ」は通じません。この融通のきかなさは弱点に見えますが、じきに強みに変わります——「察し」のない読み手は、こちらが書いたとおりにしか暴走しないからです。
✎ 演習:さがしてみる
実験室の本文を すもももももももものうち にして、次の2つを順にさがしてください。
- もよう
もも— 何か所、塗られるでしょう。先に予想を - もよう
すもも— 1か所のはず。では「もものうち」の「もも」が塗られなかったのはなぜ?
ヒント1(考え方)
検索は左から進みます。そして一度塗った場所は、二度塗りしません。
こたえ
1は4か所です。「す」のあとに「も」は8つ並んでいて、左から「もも」「もも」「もも」「もも」と、重ならないように取られていきます。2は、さがしているもようが「すもも」なので、本文に残っている「もも」たちはもう関係ない——もように書いた文字の並びだけが、当てはまりの条件です。
このレッスンで分かったこと
- 検索窓の裏には正規表現という小さな言語がいる
- 検索の指示書を**もよう(パターン)**と呼ぶ。もようは、ことばの「かたち」を言い当てる
- 文字をそのまま並べたもようは、その並びそのものに当てはまる
- 正規表現も世界一誠実な読み手——書いたとおりの文字しかさがさない