【Rails初心者】正規表現をマスターしよう!!その2

code

こんにちは、shinoです。
ぼちぼちプログラミングしながら、生きています。
私は、プログラミングスクールに通い、継続学習を140日続けています。

今回は、正規表現について書いていこうかと思います。

こんな方に読んで欲しい

  • 正規表現を知りたい方
  • プログラミング初心者の方
  • Railsでバリデーション を書きたい方

正規表現とは

正規表現とは、「文字列の集合を一つの文字列で表現する方法」です。
イメージがしづらいので、より簡潔にいうと、「文字列のパターンを作成して、簡単に検索・置換するための言語」です。

具体例は、郵便番号の場合を検索したいとき。

上記であれば、7桁の数字のみ対象になります。

上記であれば、数字3桁+「-(ハイフン)」+ 数字4桁が対象になります。

正規表現を確認する場合は、以下のサイトで、確認することができます。

Rubular
Ruby-based regular expression editor/tester

メタ文字については、【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以外の文字が該当します。

具体例

メタ文字・省略法を用いて具体的なものをみていきます。

郵便番号

少し解説していきます。
^は、先頭を表す文字です。[0-9]は、0〜9の一文字。{3}は直前文字が3文字。-は、ハイフンを表す。最後の$は、文末を表す。みてもらうと分かる通り、一文字多いと、対象になっていません。

上記は、今回の省略を使うと次のように表すことができます。

これの方がスマートに書けます。[0-9]を\dに入れ替えただけですが、文字数も少なくなるのでわかりやすいです。

電話番号

基本的なところは、郵便番号と同じです。違うところは、{a.b}のところだと思います。
これは、範囲を表しています。今回の場合は、2〜4桁であることを表しています。
電話番号の桁数には、ばらつきがあるので許容できる形にする必要があります。

ちなみに、よりスマートに書くと

まとめ

正規表現について書いていきました。最初は、railsでのバリデーションをかけたくで利用しました。簡単なルールさえ抑えれば、使うことができます。正規表現は覚えてみると、検索での効率もよくなります!!Rubularで自分で入力しながらやると、理解しやすいと思うので是非やってみてください。

コメント

タイトルとURLをコピーしました