キャプチャグループ、後方参照、置換
括弧を使ってマッチした部分をキャプチャし、後方参照で再利用することで、高度なマッチングとテキスト置換を行います。
「キャプチャグループ、後方参照、置換」はCoddyKit上の無料Linux Command Line & Bash Scripting Masteryレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLinux Command Line & Bash Scripting Mastery学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Linux Command Line & Bash Scripting Masteryコースには全4レッスンが含まれています。
キャプチャグループとは
括弧( )を使うと、マッチしたテキストを記憶して後から参照できるキャプチャグループを作成できます。
echo "2026-05-29" | grep -E "([0-9]{4})-([0-9]{2})-([0-9]{2})"グループの番号付け
グループには、左から右へ、開き括弧の順に番号が付けられます。グループ1は最初の(、グループ2は2番目の(というように続きます。
# (year)(month)(day)
# group 1 = year, 2 = month, 3 = dayマッチングでの後方参照
\1のような後方参照は、前のグループがキャプチャしたものと同じテキストにマッチします。重複の検出に便利です。
echo "hello world world" | grep -E "(\w+) \1"重複した単語を検出する
(\w+) \1というパターンは、同じ単語が続けて現れる箇所を検出します。よくあるタイプミスです。
echo "the the cat sat" | grep -oE "(\w+) \1"sedでキャプチャグループを使う
sedの置換では、キャプチャしたグループを\1や\2として置換側で再利用します。拡張正規表現を使うには-Eを指定します。
echo "2026-05-29" | sed -E "s|([0-9]{4})-([0-9]{2})-([0-9]{2})|\3/\2/\1|"フィールドを入れ替える
2つのフィールドをキャプチャし、置換側で順序を入れ替えると、データ形式を変換できます。
echo "Doe, John" | sed -E "s/(\w+), (\w+)/\2 \1/"非キャプチャの考え方
量指定子を適用するためだけにグループ化し、キャプチャは必要ない場合もあります。PCREでは(?:...)と記述して番号付けを避けられます。
# PCRE only (grep -P):
echo "abcabc" | grep -P "(?:abc){2}"グループ内で選択肢を使う
選択演算子|でグループを組み合わせると、複数の選択肢のいずれかにマッチさせながら、その結果をキャプチャできます。
echo "cat dog fish" | grep -oE "(cat|dog)"グループに量指定子を適用する
グループ全体に量指定子を適用すると、パターンを繰り返せます。(ab)+は、abの並びに1回以上マッチします。
echo "ababab" | grep -oE "(ab)+"awkでキャプチャする
awkでは、match()とRSTART、RLENGTHを使ってマッチした部分を抽出します。
echo "id=42" | awk "{ if (match(\$0, /id=[0-9]+/)) print substr(\$0, RSTART, RLENGTH) }"実践的な形式変換
ログやCSVの列を1回の処理で新しいレイアウトに変換する場合、キャプチャグループが特に役立ちます。
echo "John,30,NYC" | sed -E "s/([^,]+),([^,]+),([^,]+)/Name: \1 Age: \2 City: \3/"理解度チェック
キャプチャグループについての理解度を確認します。
まとめ
キャプチャグループを習得しました。
- 括弧でマッチしたテキストをキャプチャし、番号を付けます
- 後方参照
\1で同じテキストに再度マッチします sedでは置換時にグループを再利用してフィールドの順序を入れ替えます- グループ内で量指定子や選択肢を使い、柔軟なパターンを作成します
よくある質問
「キャプチャグループ、後方参照、置換」レッスンは無料ですか?
はい。「キャプチャグループ、後方参照、置換」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Linux Command Line & Bash Scripting Masteryコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Linux Command Line & Bash Scripting Masteryコースには全4レッスンが含まれています。
「キャプチャグループ、後方参照、置換」で何を学びますか?
括弧を使ってマッチした部分をキャプチャし、後方参照で再利用することで、高度なマッチングとテキスト置換を行います。 ブラウザで直接実行するハンズオンコードでLinux Command Line & Bash Scripting Masteryを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Linux Command Line & Bash Scripting Masteryを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのLinux Command Line & Bash Scripting Masteryは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「キャプチャグループ、後方参照、置換」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このLinux Command Line & Bash Scripting Masteryレッスンでコードを書いて実行できますか?
はい。すべてのLinux Command Line & Bash Scripting Masteryレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 正規表現(Regex)入門
- 正規表現を使った高度なGrep
- 正規表現とsed/awkの組み合わせ
- キャプチャグループ、後方参照、置換