カテゴリ: JavaScript 更新日: 2026/01/13

JavaScriptの正規表現で繰り返し指定(* + ? {n,m})を学ぼう

JavaScriptの正規表現で繰り返し指定(\* + ? {n,m})を学ぼう
JavaScriptの正規表現で繰り返し指定(\* + ? {n,m})を学ぼう

先生と生徒の会話形式で理解しよう

生徒

「正規表現で文字の繰り返しってどうやって指定するんですか?」

先生

「正規表現には、繰り返しを表す記号がいくつかあります。*+?、そして {n,m} です。」

生徒

「それぞれの意味や使い方を教えてください!」

先生

「では、順番にわかりやすく見ていきましょう。」

1. *(アスタリスク)は0回以上の繰り返し

1. *(アスタリスク)は0回以上の繰り返し
1. *(アスタリスク)は0回以上の繰り返し

* は、直前の文字やパターンが0回以上繰り返される場合にマッチします。文字がなくてもマッチするのが特徴です。


const text = "go goo gooo goooo";
const result = text.match(/go*/g);
console.log(result); // ["go", "goo", "gooo", "goooo"]

「go」の後に0文字以上の o が続くパターンにマッチしています。

2. +(プラス)は1回以上の繰り返し

2. +(プラス)は1回以上の繰り返し
2. +(プラス)は1回以上の繰り返し

+ は、直前の文字やパターンが1回以上繰り返される場合にマッチします。必ず1回は存在する必要があります。


const text = "go goo gooo goooo";
const result = text.match(/go+/g);
console.log(result); // ["go", "goo", "gooo", "goooo"]

0回の場合はマッチしません。必ず「go」が1回以上続く場合にマッチします。

3. ?(クエスチョン)は0回または1回

3. ?(クエスチョン)は0回または1回
3. ?(クエスチョン)は0回または1回

? は、直前の文字やパターンが0回または1回だけ出現する場合にマッチします。省略可能な文字を扱うときに便利です。


const text = "color colour";
const result = text.match(/colou?r/g);
console.log(result); // ["color", "colour"]

「u」が0回または1回のどちらでもマッチします。

4. {n,m}(波かっこ)で回数指定

4. {n,m}(波かっこ)で回数指定
4. {n,m}(波かっこ)で回数指定

{n,m} は、直前の文字やパターンの出現回数を具体的に指定できます。n回以上 m 回以下の繰り返しにマッチします。


const text = "go goo gooo goooo";
const result = text.match(/go{1,3}/g);
console.log(result); // ["go", "goo", "gooo", "gooo"]

1回から3回の o にマッチするので、goooo は gooo までしかマッチしていません。

5. 活用のポイント

5. 活用のポイント
5. 活用のポイント
  • * は0回以上、+ は1回以上、? は0回か1回、{n,m} は回数を指定して繰り返しを制御。
  • テキスト検索、入力バリデーション、文字列パターンの抽出に非常に便利です。
  • 正規表現を使うと複雑な文字列パターンも簡潔に表現できます。

6. 注意点

6. 注意点
6. 注意点

繰り返し指定は貪欲マッチと呼ばれる動作になることがあります。なるべく短くマッチさせたい場合は ? を組み合わせて非貪欲に指定することも可能です。使いすぎると意図しない文字列にマッチする場合があるので、テストしながら確認しましょう。

カテゴリの一覧へ
新着記事
New1
JavaScript
JavaScriptの配列から要素を削除する方法(pop, shift, spliceなど)完全ガイド
New2
JavaScript
JavaScriptで配列を作成する方法!リテラル表記とArrayコンストラクタを比較
New3
TypeScript
TypeScriptのUnion型とMapped Typesの活用法!初心者向け解説
New4
JavaScript
JavaScriptのデータ型の違いを表で比較しよう(一覧解説)
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
TypeScript
TypeScriptでコメントを書く正しい書き方と使い分け【初心者向けにやさしく解説】
No.3
Java&Spring記事人気No3
TypeScript
TypeScriptの始め方:開発環境の構築手順【初心者向け】
No.4
Java&Spring記事人気No4
JavaScript
JavaScriptでJSON操作の注意点を徹底解説!初心者でも安全に扱える方法
No.5
Java&Spring記事人気No5
TypeScript
TypeScriptで関数の型を再利用!ParametersとReturnTypeの使い方を初心者向けに徹底解説
No.6
Java&Spring記事人気No6
JavaScript
JavaScriptの配列の一部を切り出す(slice, spliceの使い方)
No.7
Java&Spring記事人気No7
JavaScript
JavaScriptでJSONを文字列に変換する方法を初心者向けに解説!JSON.stringifyの使い方ガイド
No.8
Java&Spring記事人気No8
TypeScript
TypeScriptで使える基本の型一覧(string, number, booleanなど)