エクセルやスプレッドシートにおいては文字列の削除や置換は頻繁に使われます。
そこで今回はGoogle Apps Scriptにおける、文字列の置換や削除方法についてご紹介します。
文字列の置換
Google Apps Scriptにおいて、文字列を置換するには下記スクリプトを使用します。
replace(検索する文字列,置換する文字列)
下記のサンプル1は、変数weekに代入した月曜日という文字列の、「月」を「火」に置換して変数strに代入し、メッセージボックスに表示された例になります。
・サンプル1
function myFunction() { var week = ‘月曜日’; str = week.replace(‘月’, ‘火’); Browser.msgBox(str); } |
文字列を置換して削除する場合
文字列を置換して削除したい場合は、置換する文字列に空欄(「”」または「””」)を指定して実行します。
(ここはエクセルと同様です)
下記のサンプル2は、変数weekに代入した月曜日という文字列の、「月」を削除して変数strに代入し、メッセージボックスに表示された例になります。
・サンプル2
function myFunction() { var week = ‘月曜日’; str = week.replace(‘月’, ”); Browser.msgBox(str); } |
スプレッドシート上の文字列を連続して置換する
まず、下記のようなスプレッドシートを用意します。
その上で下記のサンプル3ですが、
アクティブシートのセルA1~A7に記載された月曜日から日曜日という文字列の、「曜日」という文字列を検索し、連続して「曜」のみに置換してセルA1~A7に置き換えていきます。
・サンプル3
function myFunction() { var ss = SpreadsheetApp.getActiveSpreadsheet(); for (var i = 0; i < last_row; i++) { var week = sh.getRange(1 + i, 1).getValue(); sh.getRange(1 + i, 1).setValue(str); } |
正規表現を使った置換
ここでは、正規表現を使った置換というのも少々ご紹介していきます。
正規表現とは、
文字列内にある、文字の組み合わせを照合するために指定するパターン
をいいます。
下記のサンプル4では、
var msg = /金.*?は/;
で変数msgに正規表現「/金.*?は/」を代入しています。
ここでの正規表現「/金.*?は/」についてですが、
「金」で始まり「は」で終わるパターン
の文字列を表す正規表現です。
次の
str = str.replace(rep, ‘毎日が’);
では、「金」で始まり「は」で終わる文字列、つまり「金曜日は」という文字列を、「毎日が」という文字列に置換しています。
最後の、
Browser.msgBox(str);
では、メッセージボックスに「毎日がカレーの日」と表示されます。
・サンプル4
function myFunction() { var str = ‘金曜日はカレーの日’; var rep = /金.*?は/; str = str.replace(rep, ‘毎日が’); Browser.msgBox(str); } |