LoginSignup
0
0

More than 1 year has passed since last update.

Ruby:正規表現まとめ※コードサンプルあり

Last updated at Posted at 2021-01-13

※2022年から技術系の記事は個人ブログに投稿しております。ぜひこちらもご覧ください→yamaday0u Blog

初心者向けに主な正規表現のパターンを整理しました。

主な正規表現のパターン一覧

パターン 意味
[a-z] 角括弧で囲まれた文字のいずれか1個にマッチ(この場合はaからzのいずれかの文字にマッチ)
\d 数字にマッチ
\D 数字以外にマッチ
{n} 直前のパターンを n 回繰り返すものにマッチ
{n, m} 直前の文字が少なくともn回、多くてもm回出現するものにマッチ
. 改行以外のどの1文字にもマッチ
* 直前の部分式の0回以上の繰り返しにマッチ
+ 直前の部分式の1回以上の繰り返しにマッチ
\A 直後の文字列が先頭にある文字列にマッチ
\z 直前の文字列が末尾にある文字列にマッチ
?= 直後に設定した文字が続く文字列にマッチ
*? 直前に設定した文字が0回以上続く文字列をチェックし、?の直後の文字が出た段階でその1文字を返す

修飾子

パターン 意味
/i 大文字と小文字を区別しない

「*」の意味を深ぼる

パターン 意味
* 直前の文字の0回以上の繰り返しにマッチ

「*」の「0回以上の繰り返しにマッチ」がちょっとわかりにくいので、「+」と比較しながら確認します。

パターン 意味 マッチする文字列の例
a.*z aから始まってzで終わる2桁以上の文字列 az, abz,abczなど
a.+z aから始まってzで終わる3桁以上の文字列 abz,abczなど

「*」自体は1桁以上の文字列を求めないので、上記の例のように2桁の文字列でもマッチします。「.」は改行以外のどの文字にもマッチしますが、「*」が後に付くことで「.」にあたる文字がなくてもマッチします。
一方で「+」は1桁以上の文字列を求めるので、2桁の文字列にはマッチしません。

そのまま使える正規表現の主なパターン一覧

パターン 意味
/\A[ぁ-んァ-ン一-龥]/ 全角ひらがな、全角カタカナ、漢字
/\A[ァ-ヶー-]+\z/ 全角カタカナ
/\A[a-zA-Z0-9]+\z/ 半角英数
/\A\d{3}[-]\d{4}\z/ 郵便番号(「-」を含む且つ7桁)

RailsのActiveRecordの機能で使えるバリデーション

正規表現とは異なりますが、RailsのActiveRecordのバリデーションヘルパーの一つであるnumericalityでは、以下のオプションで使うことで簡単にバリデーションを設定することができます。
※備忘録として一時的にこの記事に残していますが、今後バリデーションの記事を作成した場合は、本項目はそちらへ移動します。

パターン 意味
greater_than_or_equal_to: 〇〇 〇〇以上の数値
less_than_or_equal_to: 〇〇 〇〇以下の数値

正規表現を試せるサイト

Rubularという、Rubyで使える正規表現を試すことができるサイトがあります。
自分で作った正規表現が意図した文字列やパターンにマッチするか確認することができるので、正規表現への理解を深める意味でも有益なサイトです。

参考資料

Ruby 3.0.0 リファレンスマニュアル>正規表現
Railsガイドv6.0 Active Record バリデーション
murashun.jp 基本的な正規表現一覧
TechRacho [連載:正規表現] Unicode文字プロパティについて(1)

0
0
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0