カテゴリ: 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の正規表現で繰り返し指定(* + ? {n,m})を学ぼう
New2
TypeScript
TypeScriptとESNextの連携を完全ガイド!最新機能を使いこなす設定と対応法
New3
JavaScript
JavaScriptの正規表現で任意の1文字(.)や文字クラスを使う方法
New4
TypeScript
TypeScriptで非同期イテレーター(for await of)を活用する
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptの日時操作Tips!実務で役立つテクニック集
No.3
Java&Spring記事人気No3
JavaScript
JavaScriptプログラムの実行方法まとめ!ブラウザ・Node.js・コンソールの使い方
No.4
Java&Spring記事人気No4
TypeScript
TypeScriptのif文の使い方を完全ガイド!初心者でもわかる条件分岐
No.5
Java&Spring記事人気No5
TypeScript
TypeScriptでコメントを書く正しい書き方と使い分け【初心者向けにやさしく解説】
No.6
Java&Spring記事人気No6
TypeScript
TypeScriptでESLintとPrettierを導入!コード整形ルールを自動で統一する方法
No.7
Java&Spring記事人気No7
JavaScript
JavaScriptの配列の要素にアクセスする方法(インデックス番号の使い方)
No.8
Java&Spring記事人気No8
TypeScript
TypeScriptの型を明確に設計するコツとチーム開発の指針