Пример использования регулярного выражения (regexp_replace)
— оставить только буквы
— оставить только цифры
with t as (select '#2 apps(0_-ORACLE+*.ru_ )ПРИ13мер' str from dual) select str , regexp_replace(str,'[^[[:alpha:]]]*') as only_char , regexp_replace(str,'[^[[:digit:]]]*') as only_number from t / STR ONLY_CHAR ONLY_NUMBER --------------------------------- ------------------------ -------------------- #2 apps(0_-ORACLE+*.ru_ )ПРИ13мер appsORACLEruПРИмер 2013
а что * в начале строки означает?
@1
Это затесалось лишнее, убрал. Спасибо
да и вообще, можно так, например, написать
WITH t AS
(SELECT ‘#2 apps(0_-ORACLE+*.ru_ )ПРИ13мер’ Str FROM Dual)
SELECT Str,
Regexp_Replace(Str, ‘\d’) AS Only_Char,
Regexp_Replace(Str, ‘\D’) AS Only_Number
FROM t;
@1
Regexp_Replace(Str, ‘\d’) возвращает лишнее
«– оставить только символы»
Я бы сказал не символы а буквы, так как ‘#’, ‘(‘, ‘_’ … тоже символы.
+ цифры
@a