![]() |
* 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. |
正規表現講座/2 のバックアップ(No.1)
入るものを特定するさて、第2回では、「入るものを特定する」伏字のやり方について解説します。 前回は、正規表現「.」は、なんでもいいから1文字とマッチする、とお話しました。 「マッチ」とは「当てはまる」という意味でしたね。 しかし「なんでもいい」では困る場合もあります。 そこで、今回は「数字だけが入る伏字」や「特定の文字だけが入る伏字」についてお話します。 この中のどれか一つさて、今回の最初の正規表現記号です。 [abcde] この記号。これは、「[]の中のどれか一つにマッチする」正規表現です。 さて、これで先ほどの年月日を探す例を書き直してみましょう。 [0123456789][0123456789][0123456789][0123456789]/[0123456789][0123456789]/[0123456789][0123456789] 単純ですね。
「0123456789のどれかが入る伏字」を使って、????/??/?? の ? に入るものを こっからここまで全部くれ!しかし、「数字」を表すために毎回 [0123456789] と書いていたのでは疲れてしまいます。 [0-9] これは、「0から9までのどれかにマッチする」正規表現です。 [0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9] となります。ずっと短くなりました。 この記法は、勿論数字以外にも使えます。例えば; [a-z] これはアルファベット小文字にマッチします。 [A-Z] これはアルファベット大文字にマッチします。 組み合わせて使うこともできます。 [0-9a-zA-Z] これはアルファベット大文字、小文字、数字にマッチします。 これ以外全部くれ!さて、ついでに、次の記法も覚えておきましょう。 [^abc] これは、「aとbとc以外の任意の1文字」にマッチする表現です。 例えば、 [^A-Z] これは、「大文字アルファベット以外の任意の1文字」にマッチする表現です。 今は使い道がわからないかもしれませんが、そのうち使いたい場面が出てくるので、 練習File not found: "./" at page "正規表現講座/2"[添付] さて、練習の時間です。 正規表現テスターを立ち上げてください。 そうしたら、適当なサイトからテキストを貼り付けてみてください。 その中から、12:34 という形式の時刻表記を探してみます。 それを表す正規表現は、もう、わかりますね。 [0-9][0-9]:[0-9][0-9] これを正規表現の欄に入れて、「テスト!」ボタンを押してみましょう。 ちょっと脱線今回お話したような正規表現は、「文字クラス」と呼ばれています。 コンピュータ用語の「クラス」はもうちょっと広い意味で使われており、 つまり、「文字クラス」であれば、「文字のひとまとまり」。 ご指摘などはこちらへ |