Google Apps Script(GAS)による正規表現の使い方として、文字列内の特定文字列一致を検索する方法を紹介します。
記事では、正規表現の使い方として基となる、検索メソッド(match、indexOf、lastIndexOf、search、includes)に焦点を当てて解説します。これにより、複雑な文字列の検索が容易になります。
正規表現がまだよくわからない方は、こちらの関連記事もおすすめです。

文字列の検索方法の5つのメソッド紹介
メソッド | 概要 | 使いどころ |
---|---|---|
match | 正規表現パターンに一致する部分を検索し、配列で返す。 | 複数のパターンを一度に検索し、マッチング結果を取得する際に使用。 |
indexOf | 指定した部分文字列が最初に出現する位置を検索し、インデックスを返す。 | 特定の文字列の最初の位置を知りたい場合に使用。 |
lastIndexOf | 指定した部分文字列が最後に出現する位置を逆向きに検索し、インデックスを返す。 | 文字列内の最後に現れる特定の文字列を見つける際に使用。 |
search | 正規表現パターンに一致する部分を検索し、最初の位置を返す。 | 正規表現パターンに基づいて文字列内の位置を検索する際に使用。 |
includes | 特定の文字列が別の文字列内に含まれているかを確認する。 | 特定の文字列の存在を確認したい場合に使用。Unicode文字にも注意が必要。 |
matchメソッドによる文字列の一致確認

match メソッドは、文字列内で正規表現パターンに一致する部分を検索し、それを配列として返す方法です。このセクションでは、match メソッドの使用方法とその概要について詳しく見ていきましょう。
matchメソッドの概要
match メソッドは、テキスト内で特定の文字列やパターンを探すときに便利です。例えば、特定のキーワードがメールの本文に含まれているかどうかを確認したいときに使えます。
例: メール本文から特定のキーワードを探す
function checkKeyword() {
let emailText = "お知らせ:イベントがあります。";
let keyword = "イベント";
let result = emailText.match(keyword);
Logger.log(result); // ログに出力: イベント
}
正規表現を用いたパターンマッチング
正規表現を使うと、特定のパターンに一致する文字列を効果的に検索できます。例えば、メール内のURLを見つけたり、電話番号を取り出したりするのに役立ちます。
例: 正規表現で電話番号を見つける
function extractPhoneNumber() {
let text = "お問い合わせは012-345-6789までお願いします。";
let pattern = /\d{3}-\d{3}-\d{4}/;
let result = text.match(pattern);
Logger.log(result); // 出力: 012-345-6789
}
このようにして、match メソッドを使ってテキスト内での一致を確認したり、正規表現を使って特定のパターンを検索したりすることができます。
indexOfメソッドによる部分文字列の位置検索

indexOf メソッドは、文字列内で指定した部分文字列が最初に現れる位置を検索するための役立つツールです。このセクションでは、indexOf メソッドの使い方や応用技、注意点について詳しく解説します。
indexOfメソッドの使い方
indexOf メソッドを使用することで、特定の部分文字列がどこに最初に出現するかを知ることができます。このメソッドを活用することで、文字列内での位置を探索することが可能です。
主な使い方:
let text = "こんにちは、良い天気ですね!";
let searchStr = "天気";
let position = text.indexOf(searchStr);
console.log(position); // 出力: 8
複数の一致箇所の取得とループ処理
indexOf メソッドは最初の一致箇所しか返さないため、複数の一致箇所を取得するためにはループ処理が必要です。このセクションでは、ループを使って複数の一致箇所を検索する方法について見ていきます。
例: 複数の一致箇所を取得する
let text = "赤いリンゴと青い空。赤いバラと青い海。";
let searchStr = "赤い";
let position = text.indexOf(searchStr);
while (position !== -1) {
console.log("「赤い」が見つかりました。位置: " + position);
position = text.indexOf(searchStr, position + 1);
// 出力:「赤い」が見つかりました。位置: 0
// 出力:「赤い」が見つかりました。位置: 10
}
注意点とベストプラクティス
indexOf メソッドを使用する際に注意すべき点や、効率的な利用のためのベストプラクティスについて考えてみましょう。適切な方法を選ぶことで、コードの品質を向上させることができます。
注意点とベストプラクティスのポイント:
- indexOf は部分一致のみをサポートするため、完全一致を求める場合には注意が必要。
- 複数の一致箇所を取得する場合は、適切なループ処理を使用して繰り返し検索する。
lastIndexOfメソッドの活用

lastIndexOf メソッドは、文字列内で指定した部分文字列が最後に現れる位置を逆向きに検索するための役立つツールです。このセクションでは、lastIndexOf メソッドの使い方や応用技、逆向き検索の方法について詳しく解説します。
lastIndexOfメソッドの機能と使いどころ
lastIndexOf メソッドを使用することで、指定した部分文字列が最後に出現する位置を知ることができます。このメソッドは特に、文字列内での逆方向からの位置を探索する際に便利です。
文字列末尾からの逆向き検索
lastIndexOf メソッドは、文字列の最後から逆方向に検索するための優れたツールです。これにより、最後の一致箇所を簡単に見つけることができます。
例: 逆方向からの検索
let text = "今日は楽しい日です。楽しい";
let searchStr = "楽しい";
let position = text.lastIndexOf(searchStr);
console.log(position); // 出力: 10
注意点とベストプラクティス
lastIndexOf メソッドを使用する際に注意すべき点や、効率的な利用のためのベストプラクティスについて考えてみましょう。適切な方法を選ぶことで、よりスマートなコードを作成することができます。
注意点とベストプラクティスのポイント:
- lastIndexOf は逆方向からの検索であり、最後に見つかった位置を返す。
- lastIndexOf の検索開始位置を調整することで、特定の範囲内で逆方向検索を行うことが可能。
searchメソッドによる文字列内のパターン検索

search メソッドは、文字列内で指定した正規表現パターンに一致する部分を検索するための役立つツールです。このセクションでは、search メソッドの特徴や使い方、正規表現との組み合わせについて詳しく解説します。
searchメソッドの特徴と利用法
search メソッドは、文字列内で正規表現パターンに一致する部分を探し、最初に見つかった位置を返します。このメソッドは、特定のパターンを持つ文字列がどこに現れるかを簡単に調べるために使用されます。
主な使い方:
let text = "今日は天気が良いね!";
let pattern = /天気/;
let position = text.search(pattern);
console.log(position); // 出力: 3
正規表現の活用と検索結果の取得
search メソッドは正規表現と組み合わせて使用することで、より柔軟なパターン検索が可能です。正規表現を使って特定のパターンを指定し、search メソッドで文字列内での位置を探すことができます。
例: 正規表現を使ったパターン検索
let text = "この文章から数値を探してみましょう:12345";
let pattern = /\d+/;
let position = text.search(pattern);
console.log("数値が見つかりました。位置: " + position); //出力:数値が見つかりました。位置: 18
注意点とベストプラクティス
search メソッドを使用する際に注意すべき点や、正規表現の活用方法について考えてみましょう。適切な正規表現パターンの選択と使い方を学ぶことで、効率的なパターン検索を実現できます。
注意点とベストプラクティスのポイント:
- search メソッドは最初に見つかった位置を返すため、複数の一致箇所を取得する場合は適切なループ処理が必要。
- 正規表現パターンを工夫することで、より詳細なパターン検索を行うことができる。
includesメソッドによる文字列の存在確認

includes メソッドは、ある文字列が別の文字列内に含まれているかどうかを調べるための便利なツールです。このセクションでは、includes メソッドの使い方や応用技、大文字と小文字の区別、Unicode文字の考慮について詳しく解説します。
includesメソッドの概要と使用方法
includes メソッドを使用することで、特定の文字列が別の文字列内に存在するかどうかを簡単に確認できます。このメソッドは、特定の文字列が含まれているかどうかをシンプルに判定する際に役立ちます。
主な使い方:
let text = "楽しいイベントがあります。";
let keyword = "イベント";
let isContained = text.includes(keyword);
console.log(isContained); // 出力: true
大文字と小文字の区別とUnicode文字の考慮
includes メソッドは、デフォルトでは大文字と小文字を区別せずに検索を行います。しかし、Unicode文字については考慮する必要があります。このセクションでは、大文字と小文字の区別やUnicode文字の扱いについて説明します。
大文字と小文字を区別しない検索
let text = "Hello, World!";
let keyword = "world";
let isContained = text.includes(keyword);
console.log(isContained); // 出力: false
Unicode文字の考慮
let text = "Café";
let keyword = "Café"; // ユニコード文字が異なる
let isContained = text.includes(keyword);
console.log(isContained); // 出力: false
注意点とベストプラクティス
includes メソッドを使用する際に注意すべき点や、正確な文字列の存在確認を行うためのベストプラクティスについて考えてみましょう。適切な方法を選ぶことで、確実な文字列の存在判定を行うことができます。
注意点とベストプラクティスのポイント:
- includes メソッドは大文字と小文字の区別をデフォルトで行わないため、必要に応じて区別を行う。
- Unicode文字が異なる場合も考慮して検索を行う。
- includes メソッドは、シンプルな存在確認に向いているが、より高度なパターン検索には他のメソッドを検討する。
まとめ
この記事では、Google Apps Script(GAS)における文字列一致検索に関するさまざまな方法を学びました。
以下に各メソッドの概要と使いどころをまとめてみましょう。
- match メソッド: テキスト内で特定の文字列やパターンを探す際に使用。正規表現を使ったパターンマッチングが可能。複数の一致箇所を検索する場合にはループ処理が必要。
- indexOf メソッド: 文字列内で指定した部分文字列が最初に出現する位置を検索。複数の一致箇所を取得するためにはループ処理が必要。
- lastIndexOf メソッド: 文字列内で指定した部分文字列が最後に出現する位置を逆方向に検索。複数の一致箇所を取得するためにはループ処理が必要。
- search メソッド: 文字列内で正規表現パターンに一致する部分を検索。最初に見つかった位置を返す。正規表現を組み合わせることで柔軟な検索が可能。
- includes メソッド: 特定の文字列が別の文字列内に含まれているかどうかを確認。大文字と小文字の区別に注意し、Unicode文字の考慮が必要。
これらのメソッドは、文字列内での特定の要素の検索や存在確認を行う際に非常に役立つものです。
適切なメソッドを選択して活用することで、効率的で正確な文字列操作を実現できます。
また、各メソッドの特徴や使い方を理解することで、GASを活用したさまざまなシナリオに応用できる能力が向上します。

