From: | Eagna <eagna(at)protonmail(dot)com> |
---|---|
To: | Gianni Ceccarelli <dakkar(at)thenautilus(dot)net> |
Cc: | pgsql-general(at)lists(dot)postgresql(dot)org |
Subject: | Re: Regular expression to UPPER() a lower case string |
Date: | 2022-12-10 13:33:09 |
Message-ID: | jsvR8Hv6XXLK1obPiuUM8d8JTjEuXhn6D7S3XovQYqmR8E8BPKoekiNODbMgvEeZ3OJCvV8GX8bE6yEqGsCbjSePDTzc1Pc6HMiffpGrfKA=@protonmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hi again, and thanks for sticking with this.
> You haven't explained what you're trying to accomplish.
Ok.
CREATE TABLE test(x TEXT);
INSERT INTO test VALUES ('abc');
SELECT REGEXP_REPLACE(x, '<something>', '<something_else>', 'g') FROM test;
Expected result: ABC
See fiddle here: https://dbfiddle.uk/Q2qXXwtF
David Johnston suggested something along these lines:
==========
> 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.
===========
But it's a bit above my pay grade to do this - I've tried, but no go! :-( It *_appears_* to me that the string's length would have to be hard coded under this strategy - but if that's the only way, then so be it.
I'd just be interested to see a solution based on DJ's suggestion or any other code that would use REGEXP_REPLACE() to do what I want - preferably without hard coding, but if it's absolutely necessary.
Thanks for any input.
E.
From | Date | Subject | |
---|---|---|---|
Next Message | Gianni Ceccarelli | 2022-12-10 13:44:37 | Re: Regular expression to UPPER() a lower case string |
Previous Message | Peter J. Holzer | 2022-12-10 13:31:50 | Re: Regular expression for lower case to upper case. |