はじめに
本記事は、よく使用される正規表現を紹介します。
基本的に暗記する必要はありませんが、
どのような理論
で判別されるのかは把握する必要はあります。
表記一覧
パターン | 内容・意味 |
---|---|
[a-z] | [ ]で囲まれた文字の1つに当てはまる |
\d | 数字に当てはまる |
{n,m} | 直前の文字が少なくてもn回、多くてもm回のものに当てはまる |
. | 改行以外のどんな1文字にも当てはまる |
+ | 直前の文字の1回以上の繰り返しに当てはまる |
\A | 直後の文字が先頭にある文字列に当てはまる |
\z | 直前の文字が末尾にある文字列に当てはまる |
[ぁ-んァ-ヶ一-龥々] | [ ]に囲まれた「かな」「カナ」「漢字」のいずれかに当てはまる |
?= | 直後に設定した文字が続く文字列に当てはまる |
*? | 直前に設定した文字が0回以上続く文字列をチェックし、?の直後の文字が出た際にその1文字を返す |
説明
####\A、\z、\d
irb(main):001:0> code = "9876-543210"
irb(main):002:0> code.match(/\A\d{4}[-]\d{6}\z/)
=> #<MatchData "9876-543210">
先頭4文字(\A)が数字(\d)
末尾6文字(\A)が数字(\d)
*特に電話番号や郵便番号が多いイメージです。
####[a-z]、[ぁ-んァ-ヶ一-龥々ー]
irb(main):001:0> name = "サンプラザ中野"
irb(main):002:0> name.match(/\A[ぁ-んァ-ヶ一-龥々ー]+\z/)
=> #<MatchData "サンプラザ中野">
irb(main):003:0> name = "Sunplaza中野"
irb(main):004:0> name.match(/\A[ぁ-んァ-ヶ一-龥々ー]+\z/)
=> nil
####?=
irb(main):001:0> name = "ビアードパパ"
irb(main):002:0> name.match(/ビアード(?=パパ)/)
=> #<MatchData "ビアード">
irb(main):003:0> name = "ビアードママ"
irb(main):004:0> name.match(/ビアード(?=パパ)/)
=> nil
終わりに
本記事を書いていると楽しくなり、気づけば2時間でした。
特に覚えるものではありませんが、このような形で投稿するとアウトプットになるので、
投稿しました!!
暇な時にまた書きたいなと思います!!