世界一わかりやすい正規表現入門|誰でも理解できるルールと実例まとめ

正規表現(Regular Expression)とは、文字列の中から特定のパターンを見つけ出すための「ルール」のようなものです。

たとえば「福井県」を表現するにも、

  • 福井県
  • ふくいけん
  • フクイケン
  • FUKUIKEN

と、いろんな表記があります。

これらをひとまとめにして扱いたいとき、以下のような正規表現が使えます:

私は(福井県|ふくいけん|フクイケン|FUKUIKEN)出身です。

このように、いろんな表現に共通するパターンをひとつにまとめられるのが正規表現です。

目次

正規表現で使う基本記号(メタ文字)一覧

記号読み方意味
.ドット任意の1文字(なんでも1文字)a.bacb, a1bなどに一致
*アスタリスク直前の文字が0回以上繰り返すho*h, ho, hoooなど
+プラス直前の文字が1回以上繰り返すho+ho, hoooなど
?はてな直前の文字が0回または1回books?book, books
^キャレット行の先頭に一致^A → Aで始まる文字列
$ドル行の終わりに一致Z$ → Zで終わる文字列
``パイプOR(いずれか)
[]ブラケットいずれか1文字[abc] → a, b, c
()パーレングループ化/抽出対象(abc) で abc をまとめる

文字をどう扱うか?具体的な解説

. ドット(なんでも1文字)

.....

これは「なんでも5文字」の意味になります。
「こんにちは」「ありがとう」「abcde」など、どんな5文字にも一致します。

* アスタリスク(制限なしの繰り返し)

ふ*
  • 「ふ」:一致
  • 「ふふふ」:一致
  • 「」:空文字にも一致(0回も含むため)

他の文字との組み合わせ:

.*

→ なんでもよい文字列(0文字でもOK)

ふく*

→ 「ふ」があり、「く」は0回以上。例:ふ、ふく、ふくくく、ふ000など

+ プラス(1回以上の繰り返し)

ふく+

→ 「ふく」「ふくく」「ふくくく」などに一致。ただの「ふ」だけは一致しない。

? はてな(0回または1回)

books?

→ 「book」または「books」に一致。「booksss」は一致しない。

^ キャレット(先頭)

^ふ.*

→ 「ふ」で始まる文字列すべてに一致。

$ ドル(末尾)

^ふ.い$

→ 「ふ」で始まり、「い」で終わる3文字の文字列に一致(中間は任意1文字)

| パイプ(または)

福井県|ふくいけん|フクイケン|FUKUIKEN

→ いずれか1つに一致

[] 大カッコ(どれか1文字)

[A-Z] → 大文字アルファベット
[a-z] → 小文字アルファベット
[0-9] → 数字

[^] 否定(これ以外)

[^A-Z] → A~Z 以外の文字

^[] の中にあると「否定」の意味になります。

() グループ化

(ふく)+

→ 「ふく」「ふくふく」「ふくふくふく」などに一致

私は(福井県|ふくいけん|フクイケン|FUKUIKEN)出身です

→ 「私は福井県出身」「私はFUKUIKEN出身」などに一致

グループ化することで、OR条件をひとまとまりとして扱うことができます。

よくある具体例

メールアドレスの抽出

[\w._%+-]+@[\w.-]+\.[a-zA-Z]{2,}
  • @ の前後を正しく抽出できます
  • 例:test@example.com → 一致

郵便番号(例:123-4567)

\d{3}-\d{4}
  • \d:数字、{n}:n回の繰り返し
  • \d{3}-\d{4} → 123-4567 に一致

電話番号(例:03-1234-5678)

\d{2,4}-\d{2,4}-\d{4}
  • 市外局番が2〜4桁など、日本の電話番号パターンに対応

まとめ

  • 正規表現は「文字列に共通するルール」を表現できる超便利ツール
  • ., *, +, ^, $, |, () などの記号に意味がある
  • メール、電話番号、都道府県、カタカナや漢字の抽出など幅広く使える
  • 最初はチートシートを見ながら、実際に試すのがおすすめ

正規表現は最初こそ取っつきにくいですが、慣れると驚くほど多用途に使える強力なスキルです。

Comment

コメントする

目次