練習問題:正規表現ドリル 10問

基本から実務でよく使うパターンまで、段階的に正規表現の力を試せる問題集です。
郵便番号・メール・バージョン番号・Markdown リンクなど、実務シーンを想定しています。

想定レベル:Lv2〜4/目安:各5〜8分

1) 郵便番号(日本形式)の抽出

問題:文字列から 「123-4567」形式の郵便番号 をすべて抽出してください。

解答例

grep -Eo “[0-9]{3}-[0-9]{4}” sample.txt

2) 郵便番号をハイフン無しに置換

問題:ファイル内の郵便番号からハイフンを削除し、7桁数字だけに整形してください。

解答例

sed -E “s/([0-9]{3})-([0-9]{4})/\1\2/g” sample.txt

3) メールアドレスの抽出

問題:テキストから メールアドレス(例: user@example.com を抽出してください。

解答例

grep -Eo “[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,}” mail.txt

4) ドメイン部分だけを抜き出す

問題:メールアドレスから ドメイン部分example.com)だけを取り出してください。

解答例

grep -Eo “@[A-Za-z0-9.-]+.[A-Za-z]{2,}” mail.txt | sed “s/@//”

5) バージョン番号の抽出

問題:テキストから 「1.2.3」形式のバージョン番号を抽出してください。

解答例

grep -Eo “[0-9]+.[0-9]+.[0-9]+” version.txt

6) 先頭が v のバージョンを整形

問題:文字列 v1.2.3先頭の v を削除して 1.2.3 に置換してください。

解答例

sed -E “s/^v([0-9]+.[0-9]+.[0-9]+)/\1/” version.txt

7) Markdown リンクの抽出

問題:テキストから Markdownリンク [タイトル](URL) のURL部分だけを抽出してください。

解答例

grep -Eo “

[]]+[^]]+([^)]+” doc.md | sed -E “s/.*(([^)]+)$/\1/”

8) 電話番号(国内形式)の抽出

問題:テキストから 「03-1234-5678」「090-1234-5678」形式の電話番号を抽出してください。

解答例

grep -Eo “0[0-9]{1,3}-[0-9]{2,4}-[0-9]{4}” phone.txt

9) 空白を含む行を検出

問題:テキストで 空白(スペースやタブ)を含む行を抽出してください。

解答例

grep -nE “\s” sample.txt

10) HTMLタグを除去

問題:テキストから 簡易的にHTMLタグを削除してください。

解答例

sed -E “s/<[^>]+>//g” page.html

学習のヒント

  • 抽出系 → grep -Eo
  • 置換系 → sed -E “s/…/…”
  • 列処理 → awk で拡張も可能
  • 正規表現設計のコツ:まず最小構造を作り、必要に応じて範囲を広げる

この練習問題は「パターンを思い出して即書ける」ことを目的としています。
応用として、自分のログやCSVに合わせて書き換えてみると、より実務力がつきます。

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

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

Bash玄

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

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

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

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

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

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

Bash玄をフォローする