はじめに
正規表現について学んだが、初学者の自分にとってとっつきにくかったため自分なりにまとめてみた内容になっています。 他の初学者の方で同じように思った方の参考になればと思いまとめていきます。正規表現とは文字列に特定の文字が含まれているか確認したり、特定の文字を取り除いたり、置き換えるときなどに使用する
正規表現
正規表現の例 | 意味 | 使用例 |
---|---|---|
[] | 囲まれた文字のうちいずれかにマッチすること | name.match(/[a-z]/)=>aからzのいずれかに当てはまるか |
a-z | aからzまでの文字、-で範囲指定できる | 上記の例を参照 |
\b | 数字が含まれている | age.match(/[\d]/)=>数字が含まれていればデータが返ってくる |
{n,m} | 最小n回,最大m回直前の文字がマッチすることを確認する | password.match(/[\d]{8,124}/)=>パスワードの中身が数字8文字以上124文字以内であるか |
. | ハイフンやピリオドを含めた全ての文字 | mail.match(/@.+/)=>メールアドレスの@以降の全てが1文字以上あればデータが返ってくる |
+ | 直前の文字が1回以上繰り返しされている | 上記の例 |
正規表現を使用するメソッド
・subメソッド
文字を置き換える。
変数.sub(/置換前/,"置換後")
name = "kanon"
puts name => kanon
puts name.sub(/ka/,"co") => conon
・gsub
subメソッドの場合は指定した文字が複数含まれている場合は最初に一致した文字だけ置換するが、gsubは複数含まれている場合でも全て置換する
name = "kanon"
puts name.sub(/n/,"m") => kamon
puts name.gsub(/n/,"m") => kamom
・match
指定した文字が含まれていればその文字をmatchDataで返ってくる。マッチしなければnilが返ってくる
変数.match(/指定文字/)
name = "kanon"
puts name.match(/an/) => an
puts name.match(/ii/) => nil
他にもまだまだありそうなので学習したら追記していこうと思います。