用語集:正規表現

実務で頻出する「正規表現」関連の用語を、一言定義+最小実例でサッと確認。
grep / sed / awk / Perl / Python など多くのツールで使われるテキストパターン指定法を整理します。

このページで達成できること

  • 基本の正規表現構文を理解
  • 拡張正規表現(ERE)と基本正規表現(BRE)の違いを把握
  • 実務での検索・置換・抽出に応用
  • 落とし穴(エスケープ忘れ・ツール間の差異)を回避

すぐ引けるミニ索引

用語一言で代表コマンド/例
メタ文字特別な意味を持つ文字`. ^ $ * + ? [ ] { } ( )
任意の1文字(.)任意の1文字にマッチgrep 'h.t'
繰り返し(* + ?)直前の繰り返しを指定a*, a+, a?
文字クラス([ ])指定集合の1文字[0-9], [A-Za-z]
否定文字クラス([^ ])集合に含まれない文字[^0-9]
行頭・行末(^ $)行の先頭/末尾^foo, bar$
グルーピング(( ))部分パターンをまとめる(abc)+
オルタネーション(複数候補のいずれか
繰り返し指定({m,n})出現回数を制御[0-9]{3}
エスケープ(\)メタ文字を無効化\.
後方参照(\1, \2)グループの再利用\(.\)\1
拡張正規表現(ERE)grep -E, egrep で利用`grep -E “(foo

用語解説(繰り返しブロック)

メタ文字

とは:通常文字とは異なり、パターン指定の特別な意味を持つ文字。
最小実例

grep "a.*b" file.txt

関連:正規表現 / エスケープ
落とし穴.* を検索したい場合は \. \* のようにエスケープが必要。

任意の1文字(.)

とは:任意の1文字にマッチ。改行は除外。
最小実例

grep "h.t" words.txt   # hat, hit, hot にマッチ

関連:文字クラス / 繰り返し
落とし穴:改行はマッチしない。

繰り返し(* + ?)

とは:直前要素の繰り返しを表す。

  • * = 0回以上
  • + = 1回以上(EREのみ)
  • ? = 0回または1回
    最小実例
grep "ba*na" file.txt  # bana, baana, baaaana...

関連:拡張正規表現 / {m,n}
落とし穴:BRE では +? が通常文字。

文字クラス([ ])

とは:指定集合のいずれか1文字にマッチ。
最小実例

grep "[0-9]" file.txt

関連:否定文字クラス / POSIXクラス [[:digit:]]
落とし穴:ハイフン - を使うと範囲指定になる。

否定文字クラス([^ ])

とは:集合に含まれない1文字にマッチ。
最小実例

grep "[^0-9]" file.txt

関連:文字クラス
落とし穴^ はクラス先頭のときだけ否定の意味。

行頭・行末(^ $)

とは:行の先頭 ^、末尾 $ にマッチ。
最小実例

grep "^error" syslog
grep "end$" file.txt

関連:アンカー
落とし穴:マルチラインかどうかで挙動が変わる。

グルーピング(( ))

とは:パターンをひとまとまりに扱う。
最小実例

grep -E "(foo|bar)+" file.txt

関連:オルタネーション / 後方参照
落とし穴:BRE では \( \) と書く必要あり。

オルタネーション(|)

とは:複数候補のいずれかにマッチ。
最小実例

grep -E "cat|dog" words.txt

関連:グルーピング / ERE
落とし穴:BRE では | は通常文字。grep -E が必要。

繰り返し指定({m,n})

とは:出現回数を明示。
最小実例

grep -E "[0-9]{3}" phone.txt   # 3桁の数字

関連:繰り返し / ERE
落とし穴:BRE では \{m,n\} のようにエスケープが必要。

エスケープ(\)

とは:メタ文字を通常文字として扱う。
最小実例

grep "\." file.txt   # ドットそのものを検索

関連:メタ文字 / クォート
落とし穴:シェルの展開より前に解釈される → "..." で囲う。

後方参照(, )

とは:グループ化した内容を再利用する。
最小実例

echo "noon" | grep -E "(..)\1"

関連:グルーピング / sed
落とし穴:ツールによってサポートの有無が異なる。

拡張正規表現(ERE)

とは:より多機能な構文を使える正規表現。grep -E, egrep で有効。
最小実例

grep -E "(foo|bar)+" file.txt

関連:BRE / PCRE
落とし穴:sed/awk の挙動は ERE だが、grep はデフォルト BRE。

運用の現場Tips

  • grepの選択:単純検索は -F、複雑検索は -E
  • エスケープの二重罠:シェルと正規表現で二重に考える
  • 過剰マッチ防止.* は最小限に。具体的に書く
  • ツール差異に注意:Perl互換(PCRE)は grep -P で別機能

関連リンク(学習ハブ内)

学びを“実務”へつなぐ最短ルート

独学で積み上げた「わかった」を、仕事で使える「できる」へ。
学習ハブの内容を踏まえて、実務に直結する学習設計・添削・質問環境を整えたい人は、下記のページで具体的な進め方を確認してください。

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする