GASでのワイルドカード活用術:IFとREPLACEを使いこなす方法

GASでワイルドカードを使う方法ってあるのかな?IFやREPLACEで上手くデータを操作したいんだ…
猫男
猫男
catman
catman
そんなことならcatmanに任せろ。GASでのワイルドカードの使い方を教えてあげよう!

GASでのワイルドカードの基本

GAS(Google Apps Script)では、ワイルドカードの直接のサポートはないが、正規表現を使うことで似たような効果を実現できる。まずはその基礎を抑えていこう。

正規表現とワイルドカードの違い

ワイルドカードは「任意の文字列を表す記号」のことを指す。ファイル検索などで使われるが、GASでは正規表現を用いて柔軟なパターンマッチを行う。

基本的な正規表現の使い方

GASでの正規表現は以下のように使用する。


function searchString(str) {
  var regex = /cat.*/;
  if (regex.test(str)) {
    Logger.log("マッチしました: " + str);
  } else {
    Logger.log("マッチしませんでした: " + str);
  }
}

これは”cat”で始まる文字列を探し出すサンプルだ。

GASでIFにワイルドカードを使う

IF文でワイルドカード的な動作を再現するには、やはり正規表現が鍵になる。

IF文と正規表現

IF文に条件式として正規表現を用いてみよう。


function checkPattern(input) {
  if (/^cat.+/i.test(input)) {
    Logger.log("パターンに一致しました。");
  } else {
    Logger.log("一致しませんでした。");
  }
}

このコードは、”cat”で始まり、その後に文字が続くかどうかをチェックする。

正規表現って、想像以上に便利なんだね!IF文と組み合わせることで強力なチェックができるんだね!
猫男
猫男

GASでREPLACEにワイルドカードを使用する

文字列の置換。ここでも正規表現が役に立つ。

正規表現とREPLACE

置き換え手法を見てみよう。ワイルドカードのように正規表現を使って柔軟に文字列を置換する。


function replaceStrings(input) {
  var newStr = input.replace(/cat/gi, "dog");
  Logger.log("新しい文字列: " + newStr);
}

このコードは、”cat”を”dog”に置き換える例だ。

なるほど!これで大量の文字列も一発で置き換えができるんだね!
猫男
猫男

まとめ:GASでのワイルドカード活用術

  • GASでのワイルドカードの利用には正規表現を使うことがポイント。
  • IF文REPLACE関数と組み合わせてデータ操作を強化できる。
  • 正規表現をマスターすれば、検索や置換の処理が飛躍的に便利になる。
今日はワイルドカードを自在に使いこなせるようになった気がするよ!catman、ありがとう!
猫男
猫男

練習問題

以下のコードを完成させて、”catnap”という文字列が含まれる場合に”dognap”に置き換えるスクリプトを書いてみましょう。


function swapAnimals(sentence) {
  // ここにコードを追加
  Logger.log(sentence);
}

var text = "I need to take a catnap.";
swapAnimals(text);

解答・解説


function swapAnimals(sentence) {
  var newSentence = sentence.replace(/catnap/gi, "dognap");
  Logger.log(newSentence);
}

var text = "I need to take a catnap.";
swapAnimals(text);

解説:
– この関数では、replaceメソッドを用いて、”catnap”を”dognap”に置き換える。
– 正規表現の/i/が、大小文字を区別しない置換を可能にしている。