Главная > SQL > Регулярные выражения — оставить только цифры или буквы


Регулярные выражения — оставить только цифры или буквы

Пример использования регулярного выражения (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. 1
    17 Сентябрь 2013 в 15:56 | #1

    а что * в начале строки означает?

  2. 17 Сентябрь 2013 в 17:45 | #2

    @1
    Это затесалось лишнее, убрал. Спасибо

  3. 1
    18 Сентябрь 2013 в 16:09 | #3

    да и вообще, можно так, например, написать
    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;

  4. 19 Сентябрь 2013 в 10:19 | #4

    @1
    Regexp_Replace(Str, ‘\d’) возвращает лишнее

  5. 1
    19 Сентябрь 2013 в 17:03 | #5
    WITH t AS
     (SELECT '#2 apps(0_-ORACLE+*.ru_ )ПРИ13мер' Str FROM Dual)
    SELECT Str,
           Regexp_Replace(Str, '[[:digit:]]') AS Only_Char,
           Regexp_Replace(Str, '[^[:digit:]]') AS Only_Number
      FROM t;
  6. 1
    19 Сентябрь 2013 в 17:05 | #6
    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
  7. a
    28 Май 2015 в 14:29 | #7

    «– оставить только символы»
    Я бы сказал не символы а буквы, так как ‘#’, ‘(‘, ‘_’ … тоже символы.

  8. a
    28 Май 2015 в 14:30 | #8

    + цифры

    @a

  1. Пока что нет уведомлений.