In Postgres, it appears to be returning false positives:
select * from
(select '52'::varchar As val) d
where d.val ~ '-{0,1}\\d*\\.{0,1}\\d+\\^{0,1}\\d*\\.{0,1}\\d+'
returns a record.
(select '52'::varchar As val) d
where d.val ~ '-{0,1}\\d*\\.{0,1}\\d+\\^{0,1}\\d*\\.{0,1}\\d+'
returns a record.
In C++ only such values match: 45.2^3 or -45.2^3 or 10^2.5
On 12/12/06, Tom Lane <tgl@xxxxxxxxxxxxx> wrote:
"Jon Asher" <jon.asher@xxxxxxxxx> writes:
> Anyone care to correct this regex for PostgreSQL? It works in C++ but
> Postgres have no love for it:
> -{0,1}\d*\.{0,1}\d+\^{0,1}\d*\.{0,1}\d+
It works fine in Postgres, AFAICT. Maybe you forgot to double the
backslashes in a string literal? Otherwise, be more specific about
your problem.
regards, tom lane