Thread: regexp_replace() [noindex] thing

regexp_replace() [noindex] thing

From
Marcus Engene
Date:
Hi!

I'm using tsearch2 and sometimes there are blocks of text that shouldn't
be indexed.

There is a trigger function that gathers data from the usual suspects
and updates the index. in this trigger, I'd like to exclude thing in a
[noindex] tag:
select
    regexp_replace
('innan[noindex]apa[/noindex]klas[noindex]banan[/noindex]',
                    '(\\\[noindex\\\])+.*?(\\\[/noindex\\\])+',
                    ' ')
I would like to have a function like the above that returns "innan klas"
for this data. I would have expected it to as I use the non greedy version.

Could someone please point me in the general direction here?

Best regards,
Marcus

Re: regexp_replace() [noindex] thing

From
Tom Lane
Date:
Marcus Engene <mengpg2@engene.se> writes:
> I would like to have a function like the above that returns "innan klas"
> for this data. I would have expected it to as I use the non greedy version.

regression=# select
    regexp_replace
('innan[noindex]apa[/noindex]klas[noindex]banan[/noindex]',
                    '\\[noindex\\].*?\\[/noindex\\]',
                    ' ', 'g');
 regexp_replace
----------------
 innan klas
(1 row)


            regards, tom lane

Re: regexp_replace() [noindex] thing

From
Marcus Engene
Date:
Tom Lane wrote:
> Marcus Engene <mengpg2@engene.se> writes:
>
>> I would like to have a function like the above that returns "innan klas"
>> for this data. I would have expected it to as I use the non greedy version.
>>
>
> regression=# select
>     regexp_replace
> ('innan[noindex]apa[/noindex]klas[noindex]banan[/noindex]',
>                     '\\[noindex\\].*?\\[/noindex\\]',
>                     ' ', 'g');
>  regexp_replace
> ----------------
>  innan klas
> (1 row)

Super!

Best regards,
Marcus