Страницы

Поиск по вопросам

воскресенье, 2 февраля 2020 г.

Как обрезать регулярным выражением конец строки начиная со знака если он встретился последний раз

#sql #регулярные_выражения #строки #oracle #plsql


Есть запрос: 

SELECT my_scheme.my_package.my_func ('param1', 'param2', int_param3) AS her FROM DUAL 


который возвращает: 

р-н Московский, п. Первомайский, ул. трактористов, д. 10, п. 11, ящ. 32123


Мне нужно обрезать , ящ. 32123 . Кол-во запятых до может быть разным, всегда надо
обрезать начиная с последней запятой.
    


Ответы

Ответ 1



Если задача стоит как отрезать кусок начиная с последней запятой, то регулярка тут не обязательна. Можно сделать например так: substr(s, 1, instr(s, ',', -1) - 1)

Ответ 2



select regexp_replace(str,'(.*),.*','\1') from DUAL

Ответ 3



Так покороче и более понятно: select regexp_replace(str, ',[^,]*$') from ( select 'р-н Московский, п. Первомайский, ул. трактористов, д. 10, п. 11, ящ. 32123' str from dual ); р-н Московский, п. Первомайский, ул. трактористов, д. 10, п. 11

Комментариев нет:

Отправить комментарий