Re: Regular Expression For Duplicate Words

From: Shaozhong SHI <shishaozhong(at)gmail(dot)com>
To: pgsql-general <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: Re: Regular Expression For Duplicate Words
Date: 2022-02-03 21:09:03
Message-ID: CA+i5JwYJe_-oa15SOfDi4jpAJK_+K2A=o+i+WExmf2Np60G2mQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi, Peter, Interesting.

On Thu, 3 Feb 2022 at 19:48, Peter J. Holzer <hjp-pgsql(at)hjp(dot)at> wrote:

> On 2022-02-02 08:00:00 +0000, Shaozhong SHI wrote:
> > regex - Regular Expression For Duplicate Words - Stack Overflow
> >
> > Is there any example in Postgres?
>
> It's pretty much the same as with other regexp dialects: User word
> boundaries and a word character class to match any word and then use a
> backreference to match a duplicate word. All the building blocks are
> described on
>
> https://www.postgresql.org/docs/current/functions-matching.html#FUNCTIONS-POSIX-REGEXP
> and except for [[:<:]] and [[:>:]] for the word boundaries, they are
> also pretty standard.
>
> So
>
> [[:<:]] start of word
> ([[:alpha:]]+) one or more alphabetic characters in a capturing group
> [[:>:]] end of word
> \W+ one or more non-word characters
> [[:<:]] start of word
> \1 the content of the first (and only) capturing group
> [[:>:]] end of word
>
> All together:
>
> select * from t where t ~ '[[:<:]]([[:alpha:]]+)[[:>:]]\W[[:<:]]\1[[:>:]]';
>
> Give a good example if you can.
>

Regards,

David

In response to

Browse pgsql-general by date

  From Date Subject
Next Message saket bansal 2022-02-03 21:29:05 pg_cron for vacuum - dynamic table set
Previous Message A Shaposhnikov 2022-02-03 21:08:39 Re: increasing effective_cache_size slows down join queries by a factor of 4000x