1
0
mirror of https://github.com/postgres/postgres.git synced 2025-05-03 22:24:49 +03:00

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 d798ea750d
commit dae5af6c19

View File

@ -5266,7 +5266,7 @@ substring('foobar' from '#"o_b#"%' for '#') <lineannotation>NULL</lineannotat
String matches regular expression, case sensitively String matches regular expression, case sensitively
</para> </para>
<para> <para>
<literal>'thomas' ~ '.*thom.*'</literal> <literal>'thomas' ~ 't.*ma'</literal>
<returnvalue>t</returnvalue> <returnvalue>t</returnvalue>
</para></entry> </para></entry>
</row> </row>
@ -5280,7 +5280,7 @@ substring('foobar' from '#"o_b#"%' for '#') <lineannotation>NULL</lineannotat
String matches regular expression, case insensitively String matches regular expression, case insensitively
</para> </para>
<para> <para>
<literal>'thomas' ~* '.*Thom.*'</literal> <literal>'thomas' ~* 'T.*ma'</literal>
<returnvalue>t</returnvalue> <returnvalue>t</returnvalue>
</para></entry> </para></entry>
</row> </row>
@ -5294,8 +5294,8 @@ substring('foobar' from '#"o_b#"%' for '#') <lineannotation>NULL</lineannotat
String does not match regular expression, case sensitively String does not match regular expression, case sensitively
</para> </para>
<para> <para>
<literal>'thomas' !~ '.*thomas.*'</literal> <literal>'thomas' !~ 't.*max'</literal>
<returnvalue>f</returnvalue> <returnvalue>t</returnvalue>
</para></entry> </para></entry>
</row> </row>
@ -5308,8 +5308,8 @@ substring('foobar' from '#"o_b#"%' for '#') <lineannotation>NULL</lineannotat
String does not match regular expression, case insensitively String does not match regular expression, case insensitively
</para> </para>
<para> <para>
<literal>'thomas' !~* '.*vadim.*'</literal> <literal>'thomas' !~* 'T.*ma'</literal>
<returnvalue>t</returnvalue> <returnvalue>f</returnvalue>
</para></entry> </para></entry>
</row> </row>
</tbody> </tbody>
@ -5343,10 +5343,12 @@ substring('foobar' from '#"o_b#"%' for '#') <lineannotation>NULL</lineannotat
<para> <para>
Some examples: Some examples:
<programlisting> <programlisting>
'abc' ~ 'abc' <lineannotation>true</lineannotation> 'abcd' ~ 'bc' <lineannotation>true</lineannotation>
'abc' ~ '^a' <lineannotation>true</lineannotation> 'abcd' ~ 'a.c' <lineannotation>true &mdash; dot matches any character</lineannotation>
'abc' ~ '(b|d)' <lineannotation>true</lineannotation> 'abcd' ~ 'a.*d' <lineannotation>true &mdash; <literal>*</literal> repeats the preceding pattern item</lineannotation>
'abc' ~ '^(b|c)' <lineannotation>false</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> </programlisting>
</para> </para>