Doc: work a little harder on the initial examples for regex matching.

Writing unnecessary '.*' at start and end of a POSIX regex doesn't
do much except confuse the reader about whether that might be
necessary after all.  Make the examples in table 9.16 a tad more
realistic, and try to turn the next group of examples into something
self-contained.

Per gripe from rmzgrimes.  Back-patch to v13 because it's easy.

Discussion: https://postgr.es/m/161215841824.14653.8969016349304314299@wrigleys.postgresql.org
This commit is contained in:
Tom Lane 2021-02-01 16:38:52 -05:00
parent f003a7522b
commit 9522085ac9

View File

@ -5329,7 +5329,7 @@ substring('foobar' similar '#"o_b#"%' escape '#') <lineannotation>NULL</linea
String matches regular expression, case sensitively
</para>
<para>
<literal>'thomas' ~ '.*thom.*'</literal>
<literal>'thomas' ~ 't.*ma'</literal>
<returnvalue>t</returnvalue>
</para></entry>
</row>
@ -5343,7 +5343,7 @@ substring('foobar' similar '#"o_b#"%' escape '#') <lineannotation>NULL</linea
String matches regular expression, case insensitively
</para>
<para>
<literal>'thomas' ~* '.*Thom.*'</literal>
<literal>'thomas' ~* 'T.*ma'</literal>
<returnvalue>t</returnvalue>
</para></entry>
</row>
@ -5357,8 +5357,8 @@ substring('foobar' similar '#"o_b#"%' escape '#') <lineannotation>NULL</linea
String does not match regular expression, case sensitively
</para>
<para>
<literal>'thomas' !~ '.*thomas.*'</literal>
<returnvalue>f</returnvalue>
<literal>'thomas' !~ 't.*max'</literal>
<returnvalue>t</returnvalue>
</para></entry>
</row>
@ -5371,8 +5371,8 @@ substring('foobar' similar '#"o_b#"%' escape '#') <lineannotation>NULL</linea
String does not match regular expression, case insensitively
</para>
<para>
<literal>'thomas' !~* '.*vadim.*'</literal>
<returnvalue>t</returnvalue>
<literal>'thomas' !~* 'T.*ma'</literal>
<returnvalue>f</returnvalue>
</para></entry>
</row>
</tbody>
@ -5406,10 +5406,12 @@ substring('foobar' similar '#"o_b#"%' escape '#') <lineannotation>NULL</linea
<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>
'abcd' ~ 'bc' <lineannotation>true</lineannotation>
'abcd' ~ 'a.c' <lineannotation>true &mdash; dot matches any character</lineannotation>
'abcd' ~ 'a.*d' <lineannotation>true &mdash; <literal>*</literal> repeats the preceding pattern item</lineannotation>
'abcd' ~ '(b|x)' <lineannotation>true &mdash; <literal>|</literal> means OR, parentheses group</lineannotation>
'abcd' ~ '^a' <lineannotation>true &mdash; <literal>^</literal> anchors to start of string</lineannotation>
'abcd' ~ '^(b|c)' <lineannotation>false &mdash; would match except for anchoring</lineannotation>
</programlisting>
</para>