こんにちは、shinoです。
ぼちぼちプログラミングしながら、生きています。
私は、プログラミングスクールに通い、継続学習を140日続けています。
今回は、正規表現について書いていこうかと思います。
こんな方に読んで欲しい
- 正規表現を知りたい方
- プログラミング初心者の方
- Railsでバリデーション を書きたい方
正規表現とは
正規表現とは、「文字列の集合を一つの文字列で表現する方法」です。
イメージがしづらいので、より簡潔にいうと、「文字列のパターンを作成して、簡単に検索・置換するための言語」です。
具体例は、郵便番号の場合を検索したいとき。
1 2 |
郵便番号(7桁)かつ「-(ハイフン)」がないパターン ^\d{7}$ |
上記であれば、7桁の数字のみ対象になります。
1 2 |
郵便番号(7桁)かつ「-(ハイフン)」があるパターン ^\d{3}-\d{4}$ |
上記であれば、数字3桁+「-(ハイフン)」+ 数字4桁が対象になります。
正規表現を確認する場合は、以下のサイトで、確認することができます。
メタ文字については、【Rails初心者】正規表現をマスターしよう!!その1で書いています。
まだ読んでない方は、こちらから先に読んでください。
正規表現での文字の省略法
\w,\W,\s,\S,\d,\Dについてそれぞれ書いていこうかと思います。
\wの使い方
\wは、英数字を表す文字です。
表す文字は、[a-zA-Z0-9_]です。要するに、英数字1文字です。具体的に言うと、「a」,「Z」,「6」 などがあります。
\Wの使い方
\Wは英数字以外を表す文字です。
表せるのは、英数字と_以外の文字を表すことができます。「,」「。」などです。\w以外が検索できます。
\sの使い方
\sは、空白文字を表す文字です。
表せるのは、空白文字なので、単語と単語の空白がある場合に、検索することができます。
\Sの使い方
\Sは、空白文字以外を表す文字です。
表せるのは、空白文字以外がある場合に検索することができます。\s以外が検索できます。
\dの使い方
\dは、数字を表す文字です。
数字一文字を表します。「0」から「9」までのいずれかの数字を表します。
\Dの使い方
\Dは、数字以外を表す文字です。
数字一文字以外を表します。\d以外の文字が該当します。
具体例
メタ文字・省略法を用いて具体的なものをみていきます。
郵便番号
1 2 |
基本形 123-4567 正規表現 ^[0-9]{3}-[0-9]{4}$ |
少し解説していきます。
^は、先頭を表す文字です。[0-9]は、0〜9の一文字。{3}は直前文字が3文字。-は、ハイフンを表す。最後の$は、文末を表す。みてもらうと分かる通り、一文字多いと、対象になっていません。
上記は、今回の省略を使うと次のように表すことができます。
1 2 |
基本形 123-4567 正規表現 ^\d{3}\-\d{4}$ |
これの方がスマートに書けます。[0-9]を\dに入れ替えただけですが、文字数も少なくなるのでわかりやすいです。
電話番号
1 2 |
基本形 090-1234-5678 正規表現 ^[0-9]{2,4}-[0-9]{2,4}-[0-9]{3,4}$ |
基本的なところは、郵便番号と同じです。違うところは、{a.b}のところだと思います。
これは、範囲を表しています。今回の場合は、2〜4桁であることを表しています。
電話番号の桁数には、ばらつきがあるので許容できる形にする必要があります。
ちなみに、よりスマートに書くと
1 2 |
基本形 090-1234-5678 正規表現 ^\d{2,4}-\d{2,4}-\d{3,4}$ |
まとめ
正規表現について書いていきました。最初は、railsでのバリデーションをかけたくで利用しました。簡単なルールさえ抑えれば、使うことができます。正規表現は覚えてみると、検索での効率もよくなります!!Rubularで自分で入力しながらやると、理解しやすいと思うので是非やってみてください。
コメント