On Sun, Jun 14, 2009 at 08:15:55AM +0200, Pavel Stehule wrote:
> postgres=# select '10' ~ '[0..9]+$';
> ?column?
> ----------
> t
> (1 row)
regexp '[0..9]+$' tests is given strings containst at the end substring
containing only characters "0", "9" and ".".
and yes, it does - the last character is 0, so it matches.
> postgres=# select '10' ~ '^[0..9]+$';
> ?column?
> ----------
> f
> (1 row)
this regexp checks if whole string is built only with characters "0",
"9", and ".". and it is not - the first character is "1" which is not
the character list you provided.
basically ".." has no special meaning in regexps, especially within [] -
i.e. it is just a dot.
Best regards,
depesz
--
Linkedin: http://www.linkedin.com/in/depesz / blog: http://www.depesz.com/
jid/gtalk: depesz@depesz.com / aim:depeszhdl / skype:depesz_hdl / gg:6749007