From: | Gianni Ceccarelli <dakkar(at)thenautilus(dot)net> |
---|---|
To: | pgsql-general(at)lists(dot)postgresql(dot)org |
Subject: | Re: Regular expression to UPPER() a lower case string |
Date: | 2022-12-10 13:47:40 |
Message-ID: | 20221210134740.2dbf966e@nautilus |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 2022-12-10 Eagna <eagna(at)protonmail(dot)com> wrote:
> 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
`select upper(x) from test`
You haven't explained why you need regexes at all. If you want to
convert the value of a text column to uppercase, there's a function
for that.
If you want to do something else, please describe the actual thing you
want to do. Not "how", but "what".
> 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.
Maybe you need to look at `regexp_split_to_array` or
`regexp_split_to_table`?
--
Dakkar - <Mobilis in mobile>
GPG public key fingerprint = A071 E618 DD2C 5901 9574
6FE2 40EA 9883 7519 3F88
key id = 0x75193F88
From | Date | Subject | |
---|---|---|---|
Next Message | Peter J. Holzer | 2022-12-10 14:08:43 | Re: Regular expression to UPPER() a lower case string |
Previous Message | Gianni Ceccarelli | 2022-12-10 13:44:37 | Re: Regular expression to UPPER() a lower case string |