正規表現で何でもできる!スプシ関数で文字列操作

SpreadSheet

こんにちはニシケンです。

正規表現を利用して検索/置換行う関数を紹介します。
正規表現を利用しているため柔軟な条件指定とパターンマッチングができるため超絶に便利です。
正規表現じたいがとっつきにくく敷居が高くはありますが、一度覚えてしまえばスプシだけではなくほとんどのプログラム言語、GoogleAnalyticsなどでも応用が効きます。これを機に基本だけでも学ばれることをお勧めします。

ad

REGEXMATCH | 正規表現を使って検索

概要

正規表現を使って検索します。
前方一致、後方一致、部分一致、パターンマッチなど柔軟に検索条件を指定ができて超便利です。

構文

REGEXMATCH( 検索対象テキスト, 正規表現 )

  • 検索対象:検索されるテキストもしくはそのセル番号
  • 正規表現:検索に使用する正規表現の文字列

使用例

A 関数 結果 備考
01aabb =REGEXMATCH(A1,"^[0-9]*aabb$") true
99aabb =REGEXMATCH(A2,"^[0-9]*aabb$") true
aa01bb =REGEXMATCH(A3,"^[0-9]*aabb$") false 先頭の数値指定にマッチングしないためFALSE

REGEXEXTRACT | 正規表現を使ってマッチ部分を取得

概要

正規表現を使ってパターンにマッチする部分テキストを取得します。
WEBのログ分析でURLの解析をする場合などによく利用しています。FIND,MID,LEN関数を駆使しての代替が可能ですが、その分冗長でかつ柔軟性に書けたものになります。その点、正規表現によるパターンマッチは柔軟に対応してくれて超絶便利です。

構文

REGEXEXTRACT( 検索対象テキスト, 正規表現 )

  • 検索対象:文字列長を測定したい文字列
  • 正規表現:検索に使用する正規表現の文字列

使用例

A 関数 結果 備考
172cm =REGEXEXTRACT(A1, "([0-9]*)cm") 172
三重県津市 =REGEXEXTRACT(A2, "..+?[都道府県]") 三重県
大阪府堺市 =REGEXEXTRACT(A3, "..+?[都道府県]") 大阪府
http://hoge.jp/a=42 =REGEXEXTRACT(A4, "^http://hoge.jp/a=([0-9]*)") 42 URLのパラメータ部分のみを取得

REGEXREPLACE | 正規表現を使って置換

概要

正規表現を使って置換処理をします。
SUBSTITUTE関数やREPLACE関数では対応できないような複雑なパターンで置換する際に利用します。こちらも正規表現を利用したマッチングとなるため強力で柔軟性の高い置換指定が可能です。

構文

REGEXREPLACE( 置換対象テキスト, 正規表現, 置換文字列 )

  • 置換対象:置換されるテキストもしくはそのセル番号
  • 正規表現:置換対象の文字列を検証する正規表現
  • 置換文字:上書き置換する文字列

使用例

A 関数 結果 備考
Spreadsheets =REGEXREPLACE(A1,"S.*d","Bed") Bedsheets
abc1192 =REGEXREPLACE(A2,"^[a-z]*","xyz") xyz1192

コメント