Re: Regular expression for lower case to upper case.

Alban Hertroys <haramrae@gmail.com>

From: Alban Hertroys <haramrae@gmail.com>
To: Eagna <eagna@protonmail.com>
Cc: "David G. Johnston" <david.g.johnston@gmail.com>, "pgsql-general@lists.postgresql.org" <pgsql-general@lists.postgresql.org>
Date: 2022-12-11T10:41:06Z
Lists: pgsql-general
> On 10 Dec 2022, at 12:00, Eagna <eagna@protonmail.com> wrote:
> 
> 
> Hi, and thanks for your input.
> 
> 
>> RegExp by itself cannot do this. You have to match all parts of the input into different capturing groups, then use lower() combined with format() to build a new string. Putting the capturing groups into an array is the most useful option.
> 
> 
> OK - I *_kind_* of see what you're saying. 
> 
> There's a small fiddle here (https://dbfiddle.uk/rhw1AdBY) if you'd care to give an outline of the solution that you propose.

If you put all the regexes and their replacements into a table[1], you could use an aggregate over them to combine all the replacements into the final string. It would need some aggregate like regex_replace_agg, which would probably be a custom aggregate.

[1]: If you stick to ASCII, you could just calculate them and even omit storing them in a physical table.

Alban Hertroys
--
If you can't see the forest for the trees,
cut the trees and you'll find there is no forest.