Function Reference

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', '[,;] *');
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;
member_namename_part
Headley QuinceyHeadley
Headley QuinceyQuincey
Flavia QuinceyFlavia
Flavia QuinceyQuincey
Andie QuinceyAndie
Andie QuinceyQuincey
Lela QuinceyLela
Lela QuinceyQuincey
Annie QuinceyAnnie
Annie QuinceyQuincey

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.

See also