Re: Plpgsql: Assign regular expression match to variable
От | Ian Barwick |
---|---|
Тема | Re: Plpgsql: Assign regular expression match to variable |
Дата | |
Msg-id | 1d581afe0909010536g6fdb57a0u87c8d748fb9067b6@mail.gmail.com обсуждение исходный текст |
Ответ на | Plpgsql: Assign regular expression match to variable ("Leif B. Kristensen" <leif@solumslekt.org>) |
Ответы |
Re: Plpgsql: Assign regular expression match to variable
|
Список | pgsql-sql |
2009/9/1, Leif B. Kristensen <leif@solumslekt.org>: > In Plpgsql, I've got this problem of how to assign an integer extracted > from a regex to a variable. My approach so far feels kludgy: > > -- extract ^#(\d+) from txt > IF txt SIMILAR TO E'#\\d+%' THEN > my_int := SUBSTR(SUBSTRING(txt, E'#\\d+'), 2, > LENGTH(SUBSTRING(txt, E'#\\d+')) -1)::INTEGER; > -- strip ^#\d+ from text > my_txt := REGEXP_REPLACE(txt, E'^#\\d+ ', ''); > END IF; > > What I'd like to do is something like this: > > my_int := MATCH(txt, '^#(\d+)')::INTEGER; > > which would assign the integer atom (\d+) to my_int. This seems to do what you want: my_int := (REGEXP_MATCHES(txt, E'^#(\\d+)'))[1]; Ian Barwick
В списке pgsql-sql по дате отправления: