< Return_Archive
正規表現

正規表現チートシート

今回は、正規表現の一覧を忘れないように用意しました。よく使うパターンと「改行・区切り」を押さえれば、普通に書けるようになります。

正規表現とは

文字列の「パターン」を使って検索や置換をするためのルールです。

  • 数字だけ取り出す
  • 特定の形式(メールなど)を見つける
    こういうことを自動でやれるようになります。

まずこれだけ覚える(最重要)

ここが一番大事です。

  • . 任意の1文字
  • * 0回以上繰り返し
  • + 1回以上繰り返し
  • ? 0回 or 1回
  • a*"", "a", "aa"
  • a+"a", "aa"
    とりあえず「+* の違い」が分かればOKです。

文字の指定

「この中のどれか」を表す書き方です。

  • [abc] a / b / c のどれか1文字
  • [^abc] a / b / c 以外
  • [a-z] 小文字
  • [A-Z] 大文字
  • [0-9] 数字
  • [a-z]+"hello" みたいな英単語

よく使う省略記法

こっちの方が実際はよく使います。

  • \d 数字(0-9)
  • \D 数字以外
  • \w 英数字 + _
  • \W それ以外
  • \s 空白(スペース・タブ・改行)
  • \S 空白以外
    まずは \d\s を覚えるとかなり楽になります。

位置の指定(重要)

文字じゃなくて「場所」を見るやつです。

  • ^ 行の先頭
  • $ 行の末尾
  • ^abc → abcで始まる
  • abc$ → abcで終わる
    これを付けるだけで精度が一気に上がります。

改行について(つまずきやすい)

環境によって違います。

  • \n 改行(Mac / Linux)
  • \r\n 改行(Windows)

    Hello\nWorld
    結果
    Hello
    World

ポイント

  • . は基本「改行にマッチしない」
  • 複数行を扱うときは設定(DOTALLなど)が必要になることがある

よく使うパターン

実際にすぐ使えるやつです。

  • 数字のみ: ^\d+$
  • 英数字のみ: ^[a-zA-Z0-9]+$
  • 空白まとめ: \s+
  • 郵便番号(日本): ^\d{3}-\d{4}$
  • メール(簡易): ^[\w.-]+@[\w.-]+\.\w+$

繰り返しの指定

回数を細かく指定できます。

  • {n} n回
  • {n,} n回以上
  • {n,m} n〜m回
  • \d{3} → 3桁
  • \d{3,4} → 3〜4桁

OR条件

どっちかにマッチさせたいとき。

  • | を使う
  • cat|dog

グループ化

まとめて扱いたいとき。

  • () を使う
  • (ab)+"ab", "abab"

置換でよく使う

実務でよくやるやつです。

  • \s+ → 連続スペースを1つに
  • "aaa bbb""aaa bbb"

エスケープ(地味に大事)

記号をそのまま使いたいとき。最初はここでよくハマります。

  • \. → ドット
  • \? → ?
  • \* → *

よくあるミス

  • +* を逆に使う
  • . を雑に使って広くマッチしすぎる
  • 改行にマッチしない
  • ^$ を付け忘れる

最短で覚えるコツ

  • \d / \w / \s を優先
  • +* に慣れる
  • ^$ はセットで使う
  • 実際に動かして確認する
    これだけでだいたい困らなくなります。

まとめ

  • 最初から全部覚えなくていい
  • よく使うところだけで十分戦える
  • 「分からなくなったら見返す」
    少しずつ使っていけば自然と慣れられると思います。
    練習用に正規表現テスターもあります↓
    https://candly.net/regax-tester