REGEXP_SPLIT_TO_TABLE
Splits a string by a regular expression and returns each part as a separate row.
PostgreSQL 17.5
REGEXP_SPLIT_TO_TABLE(string, pattern[, flags])Parameters
- stringtext
- Source string
- patterntext
- Regular expression for the separator
- flagstextoptional
- Flags, for example i to ignore case
Return value
A set of text values, one row per part; empty parts between adjacent separators and at the edges are returned too
Examples
List with different separators
PostgreSQL 17.5
SELECT REGEXP_SPLIT_TO_TABLE('sql, python;java', '[,;] *');Family member names by word
PostgreSQL 17.5
SELECT member_name,
REGEXP_SPLIT_TO_TABLE(member_name, ' ') AS name_part
FROM FamilyMembers;Details
The function returns a set of rows, so in SELECT it multiplies a table row, one per part. To get the parts as an array, use REGEXP_SPLIT_TO_ARRAY, and to split by a plain delimiter without a pattern, STRING_TO_TABLE.