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.
In C++ only such values match: 45.2^3 or -45.2^3 or 10^2.5
On 12/12/06, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>
> "Jon Asher" <jon(dot)asher(at)gmail(dot)com> 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
>