summaryrefslogtreecommitdiff
path: root/doc/src
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src')
-rw-r--r--doc/src/sgml/func.sgml65
1 files changed, 33 insertions, 32 deletions
diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml
index 5d5a86a0c7f..4e5f8f1148a 100644
--- a/doc/src/sgml/func.sgml
+++ b/doc/src/sgml/func.sgml
@@ -1,4 +1,4 @@
-<!-- $PostgreSQL: pgsql/doc/src/sgml/func.sgml,v 1.383 2007/07/18 03:12:42 momjian Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/func.sgml,v 1.384 2007/08/11 03:56:24 tgl Exp $ -->
<chapter id="functions">
<title>Functions and Operators</title>
@@ -1499,7 +1499,7 @@
<entry><literal><function>regexp_matches</function>(<parameter>string</parameter> <type>text</type>, <parameter>pattern</parameter> <type>text</type> [, <parameter>flags</parameter> <type>text</type>])</literal></entry>
<entry><type>setof text[]</type></entry>
<entry>
- Return all capture groups resulting from matching POSIX regular
+ Return all captured substrings resulting from matching a POSIX regular
expression against the <parameter>string</parameter>. See
<xref linkend="functions-posix-regexp"> for more information.
</entry>
@@ -1511,7 +1511,7 @@
<entry><literal><function>regexp_replace</function>(<parameter>string</parameter> <type>text</type>, <parameter>pattern</parameter> <type>text</type>, <parameter>replacement</parameter> <type>text</type> [, <parameter>flags</parameter> <type>text</type>])</literal></entry>
<entry><type>text</type></entry>
<entry>
- Replace substring matching POSIX regular expression. See
+ Replace substring(s) matching a POSIX regular expression. See
<xref linkend="functions-posix-regexp"> for more information.
</entry>
<entry><literal>regexp_replace('Thomas', '.[mN]a.', 'M')</literal></entry>
@@ -1522,7 +1522,7 @@
<entry><literal><function>regexp_split_to_array</function>(<parameter>string</parameter> <type>text</type>, <parameter>pattern</parameter> <type>text</type> [, <parameter>flags</parameter> <type>text</type> ])</literal></entry>
<entry><type>text[]</type></entry>
<entry>
- Split <parameter>string</parameter> using POSIX regular expression as
+ Split <parameter>string</parameter> using a POSIX regular expression as
the delimiter. See <xref linkend="functions-posix-regexp"> for more
information.
</entry>
@@ -1534,7 +1534,7 @@
<entry><literal><function>regexp_split_to_table</function>(<parameter>string</parameter> <type>text</type>, <parameter>pattern</parameter> <type>text</type> [, <parameter>flags</parameter> <type>text</type>])</literal></entry>
<entry><type>setof text</type></entry>
<entry>
- Split <parameter>string</parameter> using POSIX regular expression as
+ Split <parameter>string</parameter> using a POSIX regular expression as
the delimiter. See <xref linkend="functions-posix-regexp"> for more
information.
</entry>
@@ -2856,11 +2856,9 @@ cast(-44 as bit(12)) <lineannotation>111111010100</lineannotation>
<acronym>SQL</acronym> <function>LIKE</function> operator, the
more recent <function>SIMILAR TO</function> operator (added in
SQL:1999), and <acronym>POSIX</acronym>-style regular
- expressions.
- Additionally, a pattern matching function,
- <function>substring</function>, is available, using either
- <function>SIMILAR TO</function>-style or POSIX-style regular
- expressions.
+ expressions. Aside from the basic <quote>does this string match
+ this pattern?</> operators, functions are available to extract
+ or replace matching substrings and to split a string at the matches.
</para>
<tip>
@@ -3186,15 +3184,20 @@ substring('foobar' from '#"o_b#"%' for '#') <lineannotation>NULL</lineannotat
end of the string.
</para>
- <para>
- Some examples:
+ <para>
+ Some examples:
<programlisting>
'abc' ~ 'abc' <lineannotation>true</lineannotation>
'abc' ~ '^a' <lineannotation>true</lineannotation>
'abc' ~ '(b|d)' <lineannotation>true</lineannotation>
'abc' ~ '^(b|c)' <lineannotation>false</lineannotation>
</programlisting>
- </para>
+ </para>
+
+ <para>
+ The <acronym>POSIX</acronym> pattern language is described in much
+ greater detail below.
+ </para>
<para>
The <function>substring</> function with two parameters,
@@ -3246,9 +3249,7 @@ substring('foobar' from 'o(.)b') <lineannotation>o</lineannotation>
function's behavior. Flag <literal>i</> specifies case-insensitive
matching, while flag <literal>g</> specifies replacement of each matching
substring rather than only the first one. Other supported flags are
- <literal>m</>, <literal>n</>, <literal>p</>, <literal>w</> and
- <literal>x</>, whose meanings correspond to those shown in
- <xref linkend="posix-embedded-options-table">.
+ described in <xref linkend="posix-embedded-options-table">.
</para>
<para>
@@ -3264,23 +3265,25 @@ regexp_replace('foobarbaz', 'b(..)', E'X\\1Y', 'g')
</para>
<para>
- The <function>regexp_matches</> function returns all of the capture
- groups resulting from matching a POSIX regular expression pattern.
+ The <function>regexp_matches</> function returns all of the captured
+ substrings resulting from matching a POSIX regular expression pattern.
It has the syntax
<function>regexp_matches</function>(<replaceable>string</>, <replaceable>pattern</>
<optional>, <replaceable>flags</> </optional>).
- If there is no match to the <replaceable>pattern</>, the function returns no rows.
- If there is a match, the function returns the contents of all of the capture groups
- in a text array, or if there were no capture groups in the pattern, it returns the
- contents of the entire match as a single-element text array.
+ If there is no match to the <replaceable>pattern</>, the function returns
+ no rows. If there is a match, the function returns a text array whose
+ <replaceable>n</>'th element is the substring matching the
+ <replaceable>n</>'th parenthesized subexpression of the pattern
+ (not counting <quote>non-capturing</> parentheses; see below for
+ details). If the pattern does not contain any parenthesized
+ subexpressions, then the result is a single-element text array containing
+ the substring matching the whole pattern.
The <replaceable>flags</> parameter is an optional text
string containing zero or more single-letter flags that change the
- function's behavior. Flag <literal>i</> specifies case-insensitive
- matching, while flag <literal>g</> causes the return of each matching
- substring rather than only the first one. Other supported
- flags are <literal>m</>, <literal>n</>, <literal>p</>, <literal>w</> and
- <literal>x</>, whose meanings are described in
- <xref linkend="posix-embedded-options-table">.
+ function's behavior. Flag <literal>g</> causes the function to find
+ each match in the string, not only the first one, and return a row for
+ each such match. Other supported
+ flags are described in <xref linkend="posix-embedded-options-table">.
</para>
<para>
@@ -3319,16 +3322,14 @@ SELECT regexp_matches('foobarbequebaz', 'barbeque');
returns the text from the end of the last match to the end of the string.
The <replaceable>flags</> parameter is an optional text string containing
zero or more single-letter flags that change the function's behavior.
- <function>regexp_split_to_table</function> supports the flags <literal>i</>,
- <literal>m</>, <literal>n</>, <literal>p</>, <literal>w</> and
- <literal>x</>, whose meanings are described in
+ <function>regexp_split_to_table</function> supports the flags described in
<xref linkend="posix-embedded-options-table">.
</para>
<para>
The <function>regexp_split_to_array</> function behaves the same as
<function>regexp_split_to_table</>, except that <function>regexp_split_to_array</>
- returns its results as a <type>text[]</>. It has the syntax
+ returns its result as an array of <type>text</>. It has the syntax
<function>regexp_split_to_array</function>(<replaceable>string</>, <replaceable>pattern</>
<optional>, <replaceable>flags</> </optional>).
The parameters are the same as for <function>regexp_split_to_table</>.