ホーム DoRuby PostgreSQLで正規表現にマッチした文字の抽出

PostgreSQLで正規表現にマッチした文字の抽出

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

PostgreSQLでも正規表現を使える、なんてことできるんですよねっ
ってわけで、今回はそれを踏まえて正規表現にマッチした文字列を抽出しようと思います。
なんてこたぁない。

SELECT
  SUBSTRING(mobile_email FROM '(docomo|softbank|ezweb)') AS carrier2
, carrier
FROM
   users
;

これで、あるテーブルを用意し、実行結果をみると、

 carrier2 | carrier  
----------+----------
 docomo   | DoCoMo
 docomo   | DoCoMo
 ezweb    | au
 softbank | SoftBank
 softbank | SoftBank
 ezweb    | au
 docomo   | DoCoMo
 docomo   | DoCoMo

のように並びました。
上記のSQLでは、携帯のメールアドレスからdocomo、softbank、ezwebのいずれかにマッチした かどうかを見て、()内の正規表現にマッチしている文字列を記憶して、carrier2として取得しています。

これ、実は、登録されているキャリアとメールアドレスのドメインの整合性がとれているかどうかをチェックしようと思って作ってみました。

上記の内容がわかりにくいでしょうか?
Rubyで書いたら

/(docomo|softbank|ezweb)/ =~ mobile_email
p $1

といったところでしょうか。
これならピンときました?

記事を共有

最近人気な記事