では、初心者が手を動かしながら正規表現を学べるミニ課題集(全10問)を作り、それぞれステップごとに解説します。
問題1:数字だけの文字列かチェック
- 条件:文字列が 1桁以上の数字だけ で構成されているか
- ヒント:
\dと+を使う
問題2:英単語かチェック
- 条件:文字列が アルファベットだけ で構成されているか
- ヒント:
[a-zA-Z]と+を使う
問題3:英数字だけかチェック
- 条件:文字列が アルファベットと数字のみ か
- ヒント:
[a-zA-Z0-9]と+を使う
問題4:3桁の数字かチェック
- 条件:文字列が 3桁の数字だけ か
- ヒント:
\d{3}を使う
問題5:メールアドレス形式(簡易版)かチェック
- 条件:
ユーザー名@ドメイン形式 - ヒント:
\w+@[a-zA-Z]+\.[a-zA-Z]+を使う
問題6:電話番号形式(例:090-1234-5678)かチェック
- 条件:
3桁-4桁-4桁の数字形式 - ヒント:
\d{3}-\d{4}-\d{4}を使う
問題7:URL形式(http/https)かチェック
- 条件:
http://またはhttps://で始まるURL - ヒント:
^https?:\/\/[a-zA-Z0-9.-]+(\.[a-zA-Z]+)+$を使う
問題8:ハイフンやスペースを含む名前かチェック
- 条件:アルファベットと ハイフン・スペースだけ
- ヒント:
[a-zA-Z -]+を使う
問題9:各行が数字だけかチェック(複数行対応)
- 条件:複数行の文字列で、各行が数字だけ
- ヒント:
^\d+$とmフラグ
問題10:文字列に数字とアルファベットが混ざっているかチェック
- 条件:英数字のみ で構成されているか
- ヒント:
[a-zA-Z0-9]+を使う
解答とステップ解説
問題1
/^\d+$/
JavaScript\d→ 数字+→ 1回以上繰り返す^と$→ 文字列全体を対象
問題2
/^[a-zA-Z]+$/
JavaScript[a-zA-Z]→ アルファベット+→ 1回以上繰り返す
問題3
/^[a-zA-Z0-9]+$/
JavaScript[a-zA-Z0-9]→ 英数字
問題4
/^\d{3}$/
JavaScript{3}→ 3回繰り返す
問題5
/^\w+@[a-zA-Z]+\.[a-zA-Z]+$/
JavaScript\w→ 英数字とアンダースコア+→ 1回以上@と.→ 文字通り
問題6
/^\d{3}-\d{4}-\d{4}$/
JavaScript\d{3}→ 3桁\d{4}→ 4桁-→ 文字通り
問題7
/^https?:\/\/[a-zA-Z0-9.-]+(\.[a-zA-Z]+)+$/
JavaScripts?→ s があってもなくてもよい\.→ ドット()と+→ グループ化と繰り返し
問題8
/^[a-zA-Z -]+$/
JavaScript[a-zA-Z -]→ アルファベット、スペース、ハイフン+→ 1文字以上
問題9
/^\d+$/gm
JavaScriptg→ すべてのマッチm→ 複数行モード^\d+$→ 1行ごとの数字チェック
問題10
/^[a-zA-Z0-9]+$/
JavaScript[a-zA-Z0-9]→ 英数字のみ+→ 1文字以上
💡 まとめ
- 正規表現は「文字列のパターンを簡単にチェック」できる
^と$→ 全体を対象\d,\w,[a-zA-Z]など → 文字クラス+,{n},?,()→ 繰り返しやグループ化gやm→ フラグで動作を変える
See the Pen Regular Expression Exercises by MONO365 -Color your days- (@monoqlo365) on CodePen.
