正規表現でカンマ区切りの各単語から先頭1文字ずつ取得
弊社truestarにはMicrosoft Teamsを利用して誰もが使える疑問解決のための質問箱
通称「駆け込み寺」があります。
今回はその中でTableauでつかえる正規表現に関する質問を1つ紹介します
Q:「あいうえお,かきくけこ,さしすせそ」とカンマ区切りで単語がつながっている列があり、各単語の頭文字を取って「あ,か,さ」としたいのですが、tableauの正規表現で実現できるのでしょうか?
A:正規表現では以下のように書くと実現できます
正規表現の意味としては「”単語の境界でない部分(\B)とそれに続く任意の文字(.)を空白(“”)に置換」です
REGEXP_REPLACE('あいうえお,かきくけこ,さしすせそ','\B.',"")
式の解説
REGEXP_REPLACE('あいう,かきく,さしすせそ','\B','')
この正規表現の肝はメタ文字(プログラムに特別な意味を持たせた文字)の1つ「\B」です
\Bは「現在の位置が単語の境界でない場合にマッチする」という少々聞きなれない役割をします
「単語の先頭1文字だけを取得したい」という時に、その逆である単語の先頭ではない部分を探し、マッチしたものを消してしまうことで各単語の先頭1文字だけを残すという方法です。
正規表現はわかりづらいことも多いですが、知識として少しでも知っているといろいろ便利ですね!