Google Apps Script(GAS)で文字列の置換(置き換え)・削除する方法(replaceメソッド)

Google Apps Script(GAS)のスクリプトで、文字列に含まれている特定の文字を他の文字列に置換・削除を行う方法を解説したいと思います。

 

GASの文字列置換(置き換え)はreplaceメソッド

Google Apps Script(GAS)のスクリプトの中で使用している文字列で、一部の文字を他の文字に置換したいケースがよくあります。

予め用意したテンプレート文章に置換対象のワードを埋め込み、GASの処理で生成されたワードで置換し、文章を出力するといった事例です。

その場合に利用する文字列を置換するメソッドが「replace」です。

replaceメソッドは文字列のStringオブジェクトで使用可能です。

String.replace(“置き換え対象の文字列","置き換え後の文字列")

例えば、docというString型変数にある"人物名"という文字を"メロス"に置き換える場合、以下のようなサンプルコードで置換ができます。

doc = doc.replace("人物名", "メロス");

Google Apps Script(GAS)で文字列を置換するreplaceメソッドを使ったサンプルコードのスクリプトエディタ画面

replaceメソッドによる文字列置換テストのコードを実行すると、置換前と置換後のログが変化します。

Google Apps Scriptによる文字列置換の結果をログ出力

replaceは文字列の削除にも利用可能

なお、replaceメソッドは特定の文字列を置換するだけでなく、削除するといった利用方法も可能です。

先程の構文の場合、2つ目の引数を「""」といった形式で指定すれば、1つ目の引数の文字列を削除可能です。

doc = doc.replace("人物名", "");

Google Apps Scriptでreplaceメソッドを使うと、特定文字の削除も可能

この場合、「人物名」といった文字を削除することができます。

replaceメソッドを使った文字列の削除の実行結果

正規表現を使用したreplaceの置換方法

replaceメソッドによる置換では、通常の文字列だけでなく、正規表現を用いることができます。

第一引数に正規表現を使うことで、より細やかな条件のマッチを行うことが可能です。

doc = doc.replace(/人物名/, "メロス");

そのままreplaceメソッドに正規表現を記述すると、正規表現によって、コードの可読性が下がってしまいます。

正規表現で置換したい場合は、別途正規表現を取り扱うRegExpオブジェクトを用意するのがオススメです。

let replaceWord = /人物名/;
doc = doc.replace(replaceWord, "メロス");

Google Apps Scriptのreplaceメソッドでは正規表現を使った置換(置き換え)も可能

今回のサンプルではあまり正規表現のメリットは発揮していませんが、複雑な条件マッチが正規表現で可能になります。

GASの文字列で複数回を置換したい場合は?

replaceによる文字列の置換で、特定の文字を複数回置き換えたい場合には、どうすればよいでしょうか。

そのまま複数回の置換する処理を実装すると、forループやwhileループでreplaceメソッドを繰り返し実行します。

しかし、ループ処理を用いると終了条件を用いたりする必要が出てきて、処理が複雑になります。

実はreplaceメソッドを1回記述するだけで、複数回置換することが可能です。

正規表現のフラグとして、gをセットすると、複数回の置換ができます。

let replaceWord = /人物名/g;
doc = doc.replace(replaceWord, "メロス");

Google Apps Script(GAS)のreplaceメソッドで複数回置換を1回で行うサンプルコード

サンプルコードを実行したログ出力を見ると、きちんと複数回の置換が行われていることが確認できます。

Google Apps Script(GAS)でreplaceメソッドを使い、複数回の置換を実施したログ出力

このよう正規表現を用いたreplaceメソッドの活用で、複数回の置換処理を1行で実装することができます。

まとめ・終わりに

今回、Google Apps Script(GAS)で文字列を置換(置き換え)する方法として、replaceメソッドを紹介しました。

replaceメソッドを使うと、文字の置き換えだけでなく、削除といった処理も可能です。

さらに正規表現を用いてより詳細な指定を行ったり、複数回の置換を1回で行うことが可能です。

文字列の置換はGASにおいては使用頻度は高いので、ぜひreplaceメソッドの使い方をマスターしましょう。