Ora-10g: как с пом regexp_substr() вытряхнуть число из окружающих его НЕчисловых символов?

Голос из погреба
Дата: 02.06.2006 20:19:28
Привет всем.
Не могу понять, как с помощью regexp_substr() вытащить из строки подстроку по определенному критерию:
есть строка: 'AF929ERT47'; как из неё выцепить ПЕРВОЕ вхождение цифровых символов, т.е. подстроку '929' ?

Подскажите, плз, надо срочно! Заранее спасибо.
SY
Дата: 02.06.2006 20:59:49
SQL> select regexp_replace('AF929ERT47','([^[:digit:]]*)([[:digit:]]*)(.*)','\2') from dual;

REG
---
929

SQL> select regexp_replace('929ERT47','([^[:digit:]]*)([[:digit:]]*)(.*)','\2') from dual;

REG
---
929

SQL> select regexp_replace('AF929','([^[:digit:]]*)([[:digit:]]*)(.*)','\2') from dual;

REG
---
929

SQL> select regexp_replace('929','([^[:digit:]]*)([[:digit:]]*)(.*)','\2') from dual;

REG
---
929

SQL> select regexp_replace('AF','([^[:digit:]]*)([[:digit:]]*)(.*)','\2') from dual;

R
-


SQL> 

SY.
Голос из погреба
Дата: 02.06.2006 21:16:25
2SY: great thanx!!!
SY
Дата: 02.06.2006 21:30:58
In general, you do not need three groupings, I used three for "educational" purpose. All you need is one grouping:

select regexp_replace('AF929ERT47','[^[:digit:]]*([[:digit:]]*).*','\1') from dual;

SY.
Голос из погреба
Дата: 03.06.2006 00:07:51
SY, thank you very much again!