From: | "Peter J(dot) Holzer" <hjp-pgsql(at)hjp(dot)at> |
---|---|
To: | pgsql-general(at)lists(dot)postgresql(dot)org |
Subject: | Re: Detecting repeated phrase in a string |
Date: | 2021-12-09 13:35:10 |
Message-ID: | 20211209133510.lkn6vjh5eqpi5csg@hjp.at |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 2021-12-09 12:38:15 +0000, Shaozhong SHI wrote:
> Does anyone know how to detect repeated phrase in a string?
Use regular expressions with backreferences:
bayes=> select regexp_match('foo wikiwiki bar', '(.+)\1');
╔══════════════╗
║ regexp_match ║
╟──────────────╢
║ {o} ║
╚══════════════╝
(1 row)
"o" is repeated in "foo".
bayes=> select regexp_match('fo wikiwiki bar', '(.+)\1');
╔══════════════╗
║ regexp_match ║
╟──────────────╢
║ {wiki} ║
╚══════════════╝
(1 row)
"wiki" is repeated in "wikiwiki".
bayes=> select regexp_match('fo wikiwi bar', '(.+)\1');
╔══════════════╗
║ regexp_match ║
╟──────────────╢
║ (∅) ║
╚══════════════╝
(1 row)
nothing is repeated.
Adjust the expression within parentheses if you want to match somethig
more specific than any sequence of one or more characters.
hp
--
_ | Peter J. Holzer | Story must make more sense than reality.
|_|_) | |
| | | hjp(at)hjp(dot)at | -- Charles Stross, "Creative writing
__/ | http://www.hjp.at/ | challenge!"
From | Date | Subject | |
---|---|---|---|
Next Message | Avi Weinberg | 2021-12-09 14:19:35 | RE: Identity/Serial Column In Subscriber's Tables |
Previous Message | Shaozhong SHI | 2021-12-09 12:38:15 | Detecting repeated phrase in a string |