From: | hubert depesz lubaczewski <depesz(at)depesz(dot)com> |
---|---|
To: | Szymon Guz <mabewlun(at)gmail(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Why this regexp matches?! |
Date: | 2012-02-04 08:58:39 |
Message-ID: | 20120204085839.GA13023@depesz.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Sat, Feb 04, 2012 at 09:54:34AM +0100, Szymon Guz wrote:
> On 4 February 2012 09:46, hubert depesz lubaczewski <depesz(at)depesz(dot)com>wrote:
>
> > select 'depesz depeszx depesz' ~ E'^(.*)( \\1)+$';
> >
> > what's worse:
> > $ select regexp_replace( 'depesz depeszx depesz', E'^(.*)( \\1)+$', E'\\1'
> > );
> > regexp_replace
> > ────────────────
> > depesz
> > (1 row)
> >
> > I know that Pg regexps are limited, but even grep's regexps match this
> > correctly:
> >
> > =$ printf 'depesz depesz depesz\ndepesz depeszx depesz\n' | grep -E
> > '^(.*)( \1)+$';
> > depesz depesz depesz
> >
> > Best regards,
> >
> > depesz
> >
> >
> Hi,
> some time ago I hit the same problem, however the solution was a little bit
> tricky. I didn't have time to investigate it, but this works:
>
> postgres(at)postgres:5840=# select regexp_replace( 'depesz depeszx depesz',
> E'^(.*)( \\\\1)+$', E'\\\\1' );
> regexp_replace
> -----------------------
> depesz depeszx depesz
> (1 row)
not sure if I understand your point.
This regexp was meant to find repeated substrings.
Like this one does in perl:
/^(.*)( \1)+$/
We can see how it works with:
=$ perl -e 'if ( shift =~ m/^(.*)( \1)+$/ ) { print "is repeat of [$1]\n" } else {print "is not repeated\n"}' 'depesz depesz depesz'
is repeat of [depesz]
=$ perl -e 'if ( shift =~ m/^(.*)( \1)+$/ ) { print "is repeat of [$1]\n" } else {print "is not repeated\n"}' 'depesz depeszx depesz'
is not repeated
reason why your regexp matches is also a mystery for me.
Best regards,
depesz
--
The best thing about modern society is how easy it is to avoid contact with it.
http://depesz.com/
From | Date | Subject | |
---|---|---|---|
Next Message | mike@trausch.us | 2012-02-04 14:33:12 | Re: debugging the server[ module causes server cash] |
Previous Message | Szymon Guz | 2012-02-04 08:54:34 | Re: Why this regexp matches?! |