正規表現
正規表現チートシート
今回は、正規表現の一覧を忘れないように用意しました。よく使うパターンと「改行・区切り」を押さえれば、普通に書けるようになります。
正規表現とは
文字列の「パターン」を使って検索や置換をするためのルールです。
- 数字だけ取り出す
- 特定の形式(メールなど)を見つける
こういうことを自動でやれるようになります。
まずこれだけ覚える(最重要)
ここが一番大事です。
.任意の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
