Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 регулярные выражения  [new]
Ky391
Member

Откуда:
Сообщений: 12
добрый вечер.
мне нужно строку формата число-число-число привести к строке 000число-000число-000число (количество цифр 6-5-6). ничего кроме этого не придумал:
select to_char(regexp_substr(s,'\d+',1,1) ,'FM000000')||'-'||
       to_char(regexp_substr(s,'\d+',1,2) ,'FM00000')||'-'||
       to_char(regexp_substr(s,'\d+',1,3) ,'FM000000') 
from (select '111-111-111' as s  from dual);
как можно одним regexp_replace'ом это сделать?
15 янв 09, 19:41    [6693264]     Ответить | Цитировать Сообщить модератору
 Re: регулярные выражения  [new]
Elic
Member

Откуда:
Сообщений: 29990
Ky391
как можно одним regexp_replace'ом это сделать?
Можно двумя:
regexp_replace(regexp_replace(s, '^(\d+)-(\d+)-(\d+)$', '00000\1-0000\2-00000\3'), '^0*(\d{6})-0*(\d{5})-0*(\d{6})$', '\1-\2-\3')
15 янв 09, 19:52    [6693284]     Ответить | Цитировать Сообщить модератору
 Re: регулярные выражения  [new]
Ky391
Member

Откуда:
Сообщений: 12
то что надо. спасибо
15 янв 09, 19:56    [6693293]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить