カテゴリ: 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
TypeScript
TypeScriptでPromiseの型推論をマスター!非同期処理とasync/awaitの基礎講座
New2
JavaScript
JavaScriptプログラムの実行方法まとめ!ブラウザ・Node.js・コンソールの使い方
New3
JavaScript
JavaScriptのBigInt型とは?大きな整数の扱い方と活用例
New4
JavaScript
JavaScriptでスクロール位置を取得・操作する方法を完全解説!scrollTopなどDOM操作入門
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptのクロージャーとは?仕組みと実践例をやさしく解説
No.3
Java&Spring記事人気No3
JavaScript
JavaScriptで新しい要素を作成する方法(createElement, appendChildなど)
No.4
Java&Spring記事人気No4
TypeScript
TypeScriptのプロジェクトをtscでビルドする基本操作を解説!初心者にもわかるステップバイステップ
No.5
Java&Spring記事人気No5
JavaScript
JavaScriptでフォーム要素を操作するDOMテクニックを初心者向けに徹底解説
No.6
Java&Spring記事人気No6
JavaScript
JavaScriptで親要素・子要素・兄弟要素を取得する方法を初心者向けに徹底解説
No.7
Java&Spring記事人気No7
TypeScript
TypeScriptでnull・undefinedを型ガードするテクニックを徹底解説!初心者でも理解できる安全なコードの書き方
No.8
Java&Spring記事人気No8
TypeScript
TypeScriptの始め方:開発環境の構築手順【初心者向け】