Re: Need a help in regexp
От | Leif Biberg Kristensen |
---|---|
Тема | Re: Need a help in regexp |
Дата | |
Msg-id | 201005061737.52660.leif@solumslekt.org обсуждение исходный текст |
Ответ на | Need a help in regexp (Nicholas I <nicholas.domnic.i@gmail.com>) |
Список | pgsql-sql |
On Thursday 6. May 2010 16.48.26 Nicholas I wrote: > Hi, > > Need a help in regexp! > > I have a table in which the data's are entered like, > > Example: > > One (1) > Two (2) > Three (3) > > I want to extract the data which is only within the parentheses. > > that is > 1 > 2 > 3 > > i have written a query, > *select regexp_matches(name,'([^(]+)([)]+)','g') from table;* > which outputs the data as, > {"test"} > {"test2"} If what you've got inside the parentheses always is an integer, and it's always the only or first integer in the string, you can use: SELECT (REGEXP_MATCHES(bar, E'(\\d+)'))[1] FROM foo; You can even cast it to an integer on the fly: SELECT (REGEXP_MATCHES(bar, E'(\\d+)'))[1]::INTEGER FROM foo; Or as a more general case, whatever's inside (the first) set of parentheses: SELECT (REGEXP_MATCHES(bar, E'\\((.+?)\\)'))[1] FROM foo; regards, -- Leif Biberg Kristensen http://solumslekt.org/blog/
В списке pgsql-sql по дате отправления: