はじめに
正規表現には様々な記号が出てくるので、
この記事で使用している「」
は、記号をくくって説明するために使っています。
「」
は正規表現の記号ではありません
改めて、はじめに
この記事をご覧になっている皆様にお聞きします。
正規表現の勉強、後回しにしてませんか??
私はそうでした。心境としては、
^\w+([-.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
「なるほど。暗号が並んでて訳わからないし、もう少しプログラミングに慣れてから取り組もう」
学習に挫折しないように、このような考え方をして飛ばし飛ばし進めることはもちろん大事です
ただ、正規表現は現場に出たら知ってて当たり前のようなので、この期に苦手意識を克服していきたいですね。
それでは、先ほど定義したものをもう一度見てみます。
ポイントは、一気に読み解こうとはせず、焦らず一つずつ。
^\w+([-.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
まず、着目するのは文頭と文末にある、「^」と「$」
これはカンタン。「^」は行のはじめ、「$」は行の終わりを表す記号です。
そして次に気になるのが、やたらと出てくる
バックスラッシュ「\
」
これをうまく読み解くことが肝です。
「\」が出てきたら、慌てず右の文字を見ましょう。「\」は、右の文字とタッグを組みます。
そして組む相方によって次の二つのパターンに分かれます。
①「\w」「\d」などのアルファベット
この場合は、特別な意味をもちます。詳しくはこちらの記事が見やすいです。参考にさせていただきました。
②「\.」「\-」などの記号
この場合は、その記号を文字そのものの意味として捉えます。
再度見てみます。
^\w+([-.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
今回使用されているのは、「\w」と「\.」のふたつですね。
「\w」は、①に該当します。意味は、アルファベット、アンダーバー、数字
「\.」は、②に該当します。意味は、「.」という文字そのもの
次は、()
に注目。
こちらもいろいろな意味があるのですが、今回は、ひとまとめにしていると把握しておけばOKです。
^\w+([-.]\w+)
*@\w+([-.]\w+)
*\.\w+([-.]\w+)
*$
このように見えていればOKです。
お次は、[]
これは文字クラスといって、この中に入っている文字に『または』という意味をつけます。
^\w+([-.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
なので[-.]
の意味は、「-」または「.」
あともう少し。
残すは、**「+」「*」「@」**の三種類。
**「+」**の意味は、直前の文字が 1回以上 繰り返す場合にマッチ。
**「*」**の意味は、直前の文字が 0回以上 繰り返す場合にマッチ。
**「@」**は、文字そのものの意味です。
お疲れ様でした!ここまでの知識があれば、読み解けるはずです。
是非トライしてみてください
^\w+([-.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
最初は、慣れないので時間がかかると思います。けど粘り強くやってみれば、少しずつ理解して描けるようになります。
一緒に頑張りましょー!!
最後に
本当は、読み解いたあとの解説を載せたかったのですが、テキストで説明するのが非常に難しくて断念しました
もっともっとみなさんにわかりやすい記事を届けれるように精進します!
最後まで読んでくださり、ありがとうございました