0Pricing
Linux Command Line & Bash Scripting Mastery · レッスン

正規表現(Regex)入門

強力なテキストパターンマッチングに役立つ正規表現の構文と基本概念を理解します。

「正規表現(Regex)入門」はCoddyKit上の無料Linux Command Line & Bash Scripting Masteryレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLinux Command Line & Bash Scripting Mastery学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Linux Command Line & Bash Scripting Masteryコースには全4レッスンが含まれています。

正規表現とは

正規表現(Regular Expressions)は、一般にRegexと略される、テキストの検索や操作に使う強力なパターンです。

テキスト内の特定の文字列、文字、さらには位置まで一致させられる、非常に強力な検索条件だと考えてください。

正規表現は、プログラミングやスクリプト、Linuxのgrep、sed、awkのようなコマンドラインツールで広く使われています。

リテラル文字のマッチング

最も単純な正規表現は、文字をそのまま正確に照合します。「apple」を検索すると、正確に「apple」と一致する文字列が見つかります。

grepコマンド(Global Regular Expression Print)を使って、この基本的なマッチングを確認してみましょう。

echo "apple" > fruits.txt
echo "banana" >> fruits.txt
echo "pineapple" >> fruits.txt
grep "apple" fruits.txt
rm fruits.txt

ドット:任意の1文字

ドット(.)は、改行を除く任意の1文字にマッチする特殊文字です。

1つの位置に使えるワイルドカードのようなものです。たとえば、c.tは「cat」、「cot」、「cut」にマッチします。

echo "cat" > words.txt
echo "cot" >> words.txt
echo "cut" >> words.txt
echo "coat" >> words.txt
grep "c.t" words.txt
rm words.txt

アスタリスク:0回以上(*)

アスタリスク(*)は、その直前にある文字またはグループの出現に対して、0回以上マッチする量指定子です。

たとえば、colou*rは「color」(「u」が0個)と「colour」(「u」が1個)にマッチします。

echo "color" > spellings.txt
echo "colour" >> spellings.txt
echo "colouuur" >> spellings.txt
echo "cold" >> spellings.txt
grep "colou*r" spellings.txt
rm spellings.txt

プラス記号:1回以上(+)

プラス記号(+)は、直前にある文字またはグループの出現に対して1回以上マッチします。

*とは異なり、その要素は少なくとも1回は出現する必要があります。そのため、go+gleは「google」や「gooogle」にはマッチしますが、「ggle」にはマッチしません。

注:+、?、{}をgrepで直接使うには、拡張正規表現を有効にする-Eオプションが必要になることがよくあります。

echo "google" > search.txt
echo "goooogle" >> search.txt
echo "ggle" >> search.txt
grep -E "go+gle" search.txt
rm search.txt

疑問符:0回または1回(?)

疑問符(?)は、直前にある文字またはグループの出現に対して0回または1回マッチします。

これにより、文字を任意に指定できます。たとえば、colou?rは「color」(「u」が0個)と「colour」(「u」が1個)にマッチします。

echo "color" >> spellings.txt
echo "colour" >> spellings.txt
echo "colouuur" >> spellings.txt
grep -E "colou?r" spellings.txt
rm spellings.txt

アンカー:開始(^)と終了($)

アンカーは文字にマッチするのではなく、テキスト内の特定の位置にマッチします。

  • ^は行の先頭にマッチします。
  • $は行の末尾にマッチします。

例:^appleは、行の先頭にある場合にのみ「apple」にマッチします。apple$は、行の末尾にある場合にのみ「apple」にマッチします。

echo "apple pie" > menu.txt
echo "fresh apple" >> menu.txt
echo "apple" >> menu.txt
grep -E "^apple" menu.txt
grep -E "apple$" menu.txt
rm menu.txt

文字クラス:角括弧([])

角括弧([])は文字クラスを定義し、その集合に含まれる任意の1文字にマッチします。

  • [aeiou]は任意の母音1文字にマッチします。
  • [0-9]は任意の数字1文字にマッチします。
  • [a-zA-Z]は任意の英字1文字にマッチします。

[^...]を使うと、クラスに含まれない文字を指定することもできます。たとえば、[^aeiou]は母音ではない任意の文字にマッチします。

echo "cat" > animals.txt
echo "bat" >> animals.txt
echo "rat" >> animals.txt
echo "cot" >> animals.txt
grep -E "[cb]at" animals.txt
grep -E "[^cbr]at" animals.txt
rm animals.txt

量指定子:波括弧({})

波括弧({})は、その直前にある文字またはグループの繰り返し回数を指定する量指定子です。

  • a{3}は「aaa」にマッチします
  • a{2,}は「aa」、「aaa」、「aaaa」などにマッチします(2回以上)
  • a{2,4}は「aa」、「aaa」、「aaaa」にマッチします(2回以上4回以下)

これらの量指定子を使うときは、grep -Eを使用してください。

echo "helllo" > greetings.txt
echo "hello" >> greetings.txt
echo "helo" >> greetings.txt
grep -E "hel{2,3}o" greetings.txt
rm greetings.txt

正規表現クイックチェック

次の文字列について考えてみましょう。

  • banana
  • banaana
  • banaanana
  • bna

「banana」と「banaana」だけにマッチする正規表現はどれでしょうか。

正規表現の基礎のおさらい

正規表現の基本を学びました。

  • 正規表現では、パターンを使ってテキストを検索・操作します。
  • リテラル文字は、それ自体にマッチします。
  • .、*、+、?、^、$、[]、{}などの特殊文字によって、高度なマッチングが可能になります。

次は、grepコマンドとそのさまざまなオプションを使って、より高度なテキスト検索にこれらのパターンを応用します。

よくある質問

「正規表現(Regex)入門」レッスンは無料ですか?

はい。「正規表現(Regex)入門」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Linux Command Line & Bash Scripting Masteryコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Linux Command Line & Bash Scripting Masteryコースには全4レッスンが含まれています。

「正規表現(Regex)入門」で何を学びますか?

強力なテキストパターンマッチングに役立つ正規表現の構文と基本概念を理解します。 ブラウザで直接実行するハンズオンコードでLinux Command Line & Bash Scripting Masteryを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Linux Command Line & Bash Scripting Masteryを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのLinux Command Line & Bash Scripting Masteryは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「正規表現(Regex)入門」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このLinux Command Line & Bash Scripting Masteryレッスンでコードを書いて実行できますか?

はい。すべてのLinux Command Line & Bash Scripting Masteryレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 正規表現(Regex)入門
  2. 正規表現を使った高度なGrep
  3. 正規表現とsed/awkの組み合わせ
  4. キャプチャグループ、後方参照、置換
← Linux Command Line & Bash Scripting Masteryに戻る