none
Выдернуть подстроку из строки в ORACLE 10G RRS feed

  • Вопрос

  • В поле [Street] есть значения к примеру:

     Комсомольская, д.16, кв.5
     Комсомольская,12 кв.23
     Куйбышева д.124 кв.29 корп.3
     Куйбышева д.124 кв.29 корп.3
     Куйбышева, 126/4, кв.32
     Куйбышева, 126/4, кв.32
     Куйбышева, 126/4, кв.32

    С помощью какого регулярного выражения выдернуть отдельно название улиц, номеров домов и номеров квартир. Использовал в качестве пробы что-то типа:

    SELECT street FROM SITE WHERE regexp_like(street, '\кв.[$0-9]{1}\') ORDER BY street;

    Но не выходит! Посоветуйте как это сделать!


    О сколько нам открытий чудных, готовит просвещения дух

Ответы

  • Привет.

    Вот регулярное выражение, которое сразу выбирает и уличцы и дома и квартиры в разные группы, не знаю можно ли их использовать в оракле, но думаю что можно:

    "^([А-Яа-я]+).*?([0-9/]+).*?([0-9/]+)"

    Нулевая группа вернет полностью строку, первая группа улицу, вторая дом, а третья номер квартиры.

    Для связи [mail]

    • Помечено в качестве ответа Abolmasov Dmitry 1 июня 2012 г. 8:20
  • Сработал такой вариант regexp_substr(street, '\w+', 1, 3) as street

    О сколько нам открытий чудных, готовит просвещения дух

    • Помечено в качестве ответа Marchellо 5 июня 2012 г. 6:53

Все ответы

  • Привет.

    Вот регулярное выражение, которое сразу выбирает и уличцы и дома и квартиры в разные группы, не знаю можно ли их использовать в оракле, но думаю что можно:

    "^([А-Яа-я]+).*?([0-9/]+).*?([0-9/]+)"

    Нулевая группа вернет полностью строку, первая группа улицу, вторая дом, а третья номер квартиры.

    Для связи [mail]

    • Помечено в качестве ответа Abolmasov Dmitry 1 июня 2012 г. 8:20
  • Сработал такой вариант regexp_substr(street, '\w+', 1, 3) as street

    О сколько нам открытий чудных, готовит просвещения дух

    • Помечено в качестве ответа Marchellо 5 июня 2012 г. 6:53