PostgreSQL 区切る単位を正規表現で指定して文字列から配列を作成する

PostgreSQL 区切る単位を正規表現で指定して文字列から配列を作成する

PostgreSQLで、区切る単位を正規表現で指定して文字列から配列を作成する手順を記述してます。「regexp_split_to_array」に対象の文字列と正規表現を指定することで可能です。実行結果はpgadmin上で確認してます。

環境

  • OS CentOS Stream release 9
  • PostgreSQL 15.1
  • pgadmin4 6.16

手順

区切る単位を正規表現で指定して文字列から配列を作成するには、「regexp_split_to_array」を使用します。

regexp_split_to_array(文字列,正規表現);

実際に、作成してみます。
※「[-]」は「-」にマッチするで、「\s+」は「連続する空白」にマッチするという正規表現です。

SELECT 
regexp_split_to_array('abc-abc-abc', '[-]'),
regexp_split_to_array('a bc   de	f', '\s+');

実行結果を見ると指定した正規表現単位で配列が作成されていることが確認できます。

大文字小文字を区別しない

パラメーター「i」を使用すると大文字小文字を区別せずに作成可能です。

SELECT 
regexp_split_to_array('abcZabczabc', '[z]','i');

実行結果

空文字を指定

空文字を指定すると1文字単位で配列が作成されます。

SELECT 
regexp_split_to_array('abcabcabc', '');

実行結果

行単位

行単位で取得する場合は「regexp_split_to_table」を使用します。

SELECT 
regexp_split_to_table('abc-abc-abc', '[-]'),
regexp_split_to_table('a bc   de	f', '\s+');

実行結果