PostgreSQL regexp_split_to_table() 函数使用指南

PostgreSQL regexp_split_to_table() 函数将一个指定的字符串按照通过 POSIX 正则表达式指定的分隔符拆分成一个结果集并返回。

此函数和 string_to_table() 函数类似。

regexp_split_to_table() 语法

这里是 PostgreSQL regexp_split_to_table() 函数的语法:

regexp_split_to_table(string, regex[, flags])  set of text

参数

string
必需的。 一个要拆分的字符串。
regex
必需的。 用作分隔符的正则表达式。
flags
可选的。 正则表达式的匹配模式。

返回值

PostgreSQL regexp_split_to_table() 函数返回一个结果集,该集合中的元素就是字符串 string 按照正则表达式 regex 拆分的所有部分。

如果 regexNULL,此函数将返回 NULL

如果 regex 是一个空字符串,那么整个字符串中的所有字符都将成为结果集的成员。

如果 null_string 不为 NULL,那么拆分后的数组中的与它匹配的成员将被替换为 NULL

regexp_split_to_table() 示例

这个示例演示了如何使用 regexp_split_to_table() 函数将一个字符串根据分隔符拆分成结果集:

SELECT regexp_split_to_table('ab cd ef  gh', '\s+');
 regexp_split_to_table
-----------------------
 ab
 cd
 ef
 gh

如果 delimiter 是一个空字符串,那么整个字符串的所有字符都将成为结果集中的成员。

SELECT regexp_split_to_table('ab,cd', '');
 regexp_split_to_table
-----------------------
 a
 b
 ,
 c
 d

您可以在参数 flags 中使用 i 标识在使用正则表达式匹配分隔符的时候忽略大小写。比如:

SELECT regexp_split_to_table('AbcdefghabCDefGh', 'cd.', 'i');
 regexp_split_to_table
-----------------------
 Ab
 fghab
 fGh