Home Explore Blog CI



postgresql

41th chunk of `doc/src/sgml/func.sgml`
1ea4158001fb47caf9a74c90ed2c1502837f447a5d3e834d0000000100000fa0
    <parameter>start</parameter> <type>integer</type>
         <optional>, <parameter>N</parameter> <type>integer</type>
         <optional>, <parameter>flags</parameter> <type>text</type> </optional> </optional> )
        <returnvalue>text</returnvalue>
       </para>
       <para>
        Replaces the substring that is the <parameter>N</parameter>'th
        match to the POSIX regular expression <parameter>pattern</parameter>,
        or all such matches if <parameter>N</parameter> is zero, with the
        search beginning at the <parameter>start</parameter>'th character
        of <parameter>string</parameter>.  If <parameter>N</parameter> is
        omitted, it defaults to 1.  See
        <xref linkend="functions-posix-regexp"/>.
       </para>
       <para>
        <literal>regexp_replace('Thomas', '.', 'X', 3, 2)</literal>
        <returnvalue>ThoXas</returnvalue>
       </para>
       <para>
        <literal>regexp_replace(string=>'hello world', pattern=>'l', replacement=>'XX', start=>1, "N"=>2)</literal>
        <returnvalue>helXXo world</returnvalue>
       </para></entry>
      </row>

      <row>
       <entry role="func_table_entry"><para role="func_signature">
        <indexterm>
         <primary>regexp_split_to_array</primary>
        </indexterm>
        <function>regexp_split_to_array</function> ( <parameter>string</parameter> <type>text</type>, <parameter>pattern</parameter> <type>text</type> <optional>, <parameter>flags</parameter> <type>text</type> </optional> )
        <returnvalue>text[]</returnvalue>
       </para>
       <para>
        Splits <parameter>string</parameter> using a POSIX regular
        expression as the delimiter, producing an array of results; see
        <xref linkend="functions-posix-regexp"/>.
       </para>
       <para>
        <literal>regexp_split_to_array('hello world', '\s+')</literal>
        <returnvalue>{hello,world}</returnvalue>
       </para></entry>
      </row>

      <row>
       <entry role="func_table_entry"><para role="func_signature">
        <indexterm>
         <primary>regexp_split_to_table</primary>
        </indexterm>
        <function>regexp_split_to_table</function> ( <parameter>string</parameter> <type>text</type>, <parameter>pattern</parameter> <type>text</type> <optional>, <parameter>flags</parameter> <type>text</type> </optional> )
        <returnvalue>setof text</returnvalue>
       </para>
       <para>
        Splits <parameter>string</parameter> using a POSIX regular
        expression as the delimiter, producing a set of results; see
        <xref linkend="functions-posix-regexp"/>.
       </para>
       <para>
        <literal>regexp_split_to_table('hello world', '\s+')</literal>
        <returnvalue></returnvalue>
<programlisting>
 hello
 world
</programlisting>
       </para></entry>
      </row>

      <row>
       <entry role="func_table_entry"><para role="func_signature">
        <indexterm>
         <primary>regexp_substr</primary>
        </indexterm>
        <function>regexp_substr</function> ( <parameter>string</parameter> <type>text</type>, <parameter>pattern</parameter> <type>text</type>
         <optional>, <parameter>start</parameter> <type>integer</type>
         <optional>, <parameter>N</parameter> <type>integer</type>
         <optional>, <parameter>flags</parameter> <type>text</type>
         <optional>, <parameter>subexpr</parameter> <type>integer</type> </optional> </optional> </optional> </optional> )
        <returnvalue>text</returnvalue>
       </para>
       <para>
        Returns the substring within <parameter>string</parameter> that
        matches the <parameter>N</parameter>'th occurrence of the POSIX
        regular expression <parameter>pattern</parameter>,
        or <literal>NULL</literal> if there is no such match; see
        <xref linkend="functions-posix-regexp"/>.
       </para>
       <para>
        <literal>regexp_substr('ABCDEF', 'c(.)(..)', 1, 1, 'i')</literal>
        <returnvalue>CDEF</returnvalue>
    

Title: PostgreSQL Regular Expression Functions: REGEXP_REPLACE (cont.), REGEXP_SPLIT_TO_ARRAY, REGEXP_SPLIT_TO_TABLE, REGEXP_SUBSTR
Summary
This section describes additional PostgreSQL regular expression functions. It details the extended functionality of `regexp_replace` with start position and Nth match, along with `regexp_split_to_array` and `regexp_split_to_table` that split strings using regular expressions as delimiters into arrays or sets, respectively. It also introduces `regexp_substr` for extracting substrings matching a specific occurrence of a regular expression pattern.