Обсуждение: regexp question

Поиск
Список
Период
Сортировка

regexp question

От
"Andy Kriger"
Дата:
I see that it's possible to select using regexps.
Is it possible to use portions of the selection in the result?

example...
select * from table where column ~ '.*\(blah.*\)'
will return any row with characters-blah-characters

Is there any way I can get just the blah.* portion of the string in my
result?

thx
andy



Re: regexp question

От
Peter Eisentraut
Дата:
Andy Kriger writes:

> select * from table where column ~ '.*\(blah.*\)'
> will return any row with characters-blah-characters
>
> Is there any way I can get just the blah.* portion of the string in my
> result?

Use the substring function.  See the documentation on pattern matching.

--
Peter Eisentraut   peter_e@gmx.net


Re: regexp question

От
Tom Lane
Дата:
"Andy Kriger" <akriger@greaterthanone.com> writes:
> I see that it's possible to select using regexps.
> Is it possible to use portions of the selection in the result?

The POSIX version of substring() might do what you want:
http://www.ca.postgresql.org/users-lounge/docs/7.3/postgres/functions-matching.html#FUNCTIONS-POSIX-REGEXP
I forget whether that's available in any version before 7.3.

If not, the next step would be to write a little function in plperl or
pltcl to mash the string however you want ...

            regards, tom lane