GoogleApps Script(GAS)文字列の処理・操作方法まとめ(置換/変換/抽出/分割/連結)
Google Apps Script(GAS)のスクリプトでは、文字列を処理・操作する機会が多くあります。
文字列の抽出・分割・連結・置換・変換・空白削除といった処理に加え、文字列の長さを取得するなど色々なメソッドを活用します。
今回、GASの文字列を処理・操作する方法・メソッドについてまとめたいと思います。
Google Apps Scriptは文字列の処理・操作する機会が多い
Google Apps Script(GAS)でスクリプトを書く際には、文字列を処理・操作するコードを書くことが多いです。
というのもGASはスプレッドシートと連携させてデータ処理を行うので、スプレッドシートから取得したデータ処理の中で文字列を操作する必要があるからです。
ただ、文字列の処理といっても、具体的な操作内容は多岐にわたります。
- 文字列の一部を置換する
- 文字列を数値に変換する
- 一部を切り出して抽出する
- 文字列を2つに分割する
- 2つの文字列を結合する
※他にもまだまだ文字列の操作内容はあります。
これまでAuto-WorkerではGASの各種処理するメソッドや手順について解説してきました。
Google Apps Scriptで必要性が高い文字列の処理手順をまとめて紹介してきます。
①GASの文字列の置換と一部削除
GASの文字列に含まれている特定の文字を他の文字列に置換する方法を解説しています。
replaceメソッドを利用することで、第1引数で指定された文字列を第2引数に置換することができます。
第2引数を「""」といった空指定することで、特定の文字列の削除も可能です。
さらに、正規表現も使用可能で詳細な条件での置換や複数回置換することもできます。
②GASの文字列を数値に変換
Google Apps Scriptではスプレッドシートから値を読み取った時に数字でも文字列として読み取るケースがあります。
そうした場合に、文字列を数値に変換することで、数字演算が可能となります。
文字列→数値の場合はparseInt()やNumber()を使い、数値→文字列の場合にはtoStringメソッドを使い、それぞれデータの型を変換します。
③GASの日付を文字列に変換
Google Apps Scriptで扱っている日付をそのまま文字列で出力しようとすると、GASの日付形式で出力されてしまいます。
そんなときには日付のデータ型をformateDateメソッドを使うことで、文字列として好きな形式で出力できます。
YYYY/MM/ddやYYYY年MM月dd日といったフォーマットから、時間も含めた形式まで色々なフォーマットに変換することが可能です。
④文字列から指定位置で切り出し、抽出
Google Apps Script(GAS)で文字列の中から一部を切り出して抽出したい場合には、slice、substring、substrの3種類メソッドを使用します。
Google Apps Script(GAS)で文字列を切り出し・抽出(slice,substring,substr)の解説
切り出したい文字列・ワードのサイズが明確に分かっている場合は、substrメソッドを使うのがオススメです。
sliceとsubstringをどちらを使うかという点ですが、統一して使う場合は切り出し位置にマイナスの数を指定できるsliceメソッドの利用をオススメします。
⑤特定文字列が含まれているかGASで検索
GASの文字列の中で特定の文字列が含まれているか調べたいときには、検索することができます。
Google Apps Scriptの文字列を検索する方法(indexOf,lastIndexOf,searchメソッド)
indexOf、lastIndexOf、searchの3つの文字列検索の方法と、それぞれの違いについて解説します。
Google Apps Scriptで文字列の検索を行う場合、indexOfがよく用いられます。
そのため、indexOfがサンプルコードが豊富なのでオススメです。
前方検索ではなく、後方検索したい場合にはlastIndexOf、正規表現を用いた検索を行いたい場合はSearchメソッドを使います。
⑥GASの文字列を指定文字で分割・区切る
GASの文字列ではカンマ(,)やスペースで区切られた指定文字で分割することができます。
GASのsplitメソッドの区切り文字は、カンマ(,)やスペースの他に、複数文字も指定することができます。
splitメソッドはカンマ区切りのCSVデータや、タブやスペースで区切られたTSVデータなどを要素に分割する際に利用します。
さらに、区切り文字の引数を「""」でなしにすると、1文字ずつ分割も可能です。
第2引数を設定することで分割する数も指定できます。
⑦GASの2つの文字列を連結・結合する
GASで2つの文字列を連結・結合するニーズは多く存在します。
「ファイルの名称」+「拡張子」といった形でGoogleドライブに保存するファイル名を作るのに、文字列の結合が必須です。
文字列を結合するメソッドとして、concatメソッドが用意されていますが、+演算子でも結合できます。
文字列を+演算子で結合するには、数値型でないことを事前に確認しておきます。
※数値型のデータの場合、+演算子で数値計算が行われるため
⑧GASの2つの文字列を比較する
GASの文字列を比較する方法としては、大きく分けて等価演算子「==(イコール2つ)」と厳密等価演算子「===(イコール3つ)」の2つがあります。
等価演算子==はデータの型までは考慮せず、1をtrueと判定したり、文字列のfalseと真偽値のfalseを等しいと判断します。
厳密等価演算子===はデータ型まで比較条件に含め、1とtrueは一致しないと判定します。
厳密等価演算子では上手く判定できないようなロジックの場合を除き、デフォルトでは厳密等価演算子を使いましょう。
⑨GASの文字列の長さを調べる
GAS文字列の長さを調べる方法は、他のプログラミング言語でも使われるlengthプロパティを使用します。
配列の場合、lengthプロパティで要素数を知ることができますが、文字列の場合は文字数・文字の長さを取得することができます。
Forループなどで文字列の文字数だけ処理を行う場合に、lengthプロパティをよく活用します。
⑩GASの英語文字列を大文字/小文字に変換
英語の文字列だと大文字・小文字の2種類があり、GASでは大文字と小文字は異なる文字と判定されます。
例えば、Testとtestは最初のTが大文字と小文字で異なるため、同じ文字と識別できません。
大文字・小文字の文字が混ざっている場合に、toUpperCaseメソッドで大文字を小文字に変換し、toLowerCaseメソッドで小文字を大文字に変換することができます。
⑪GASの文字列を途中で改行する
GASの文字列を出力する際に、文章の途中で改行したいケースがあります。
そんな場合には、エスケープ文字を文字列内に埋め込んで改行を行うようにします。
エスケープ文字は\から始まる特殊文字です。
エスケープ文字で改行を表す「\n」を改行したい場所に挿入することで、挿入箇所で文字列が改行されるようになります。
GASでTwitter投稿する際には、\nを含んだ文章をツイートすると、改行して見やすい投稿文になります。
まとめ・終わりに
今回、Google Apps Scriptでよく使う文字列の操作・処理の手順やメソッドをまとめてみました。
これまでにGASの文字列処理について解説記事を掲載してきましたが、置換/分割/結合/抽出/検索/削除/変換/比較といった文字列操作一通りリストアップしました。
いずれもGASでスクリプトを書いていると必要になるケースが多いので、Google Apps Scriptで文字列操作する場合に参考にしてください。
ディスカッション
コメント一覧
まだ、コメントがありません