У меня есть строка 'TICKER: IBM IBM Corporation Inc.' и я хочу удалить тикер и его значение и захватить только оставшиеся в Oracle PL/SQL.Oracle PL/SQL regexp_replace для нескольких слов
Так что я сделал этот запрос, но он не работает так, как я предполагал:
SELECT REGEXP_REPLACE(
'TICKER: IBM IBM Corporation Inc.',
'(.*):[[:space:]](.*)[[:space:]](.*)', '\3')
FROM dual;
Я надеялся, что «\ 3» даст мне «IBM Corporation Inc.» но я получаю только «Инк» в результате.
REGEXP_REPLACE('TICKER:IBMIBMCORPORATIONINC.','(.*):[[:SPACE:]](.*)[[:SPACE:]](.*)','\3')
-----------------------------------------------------------------------------
Inc.
1 rows selected
Update:
SELECT REGEXP_REPLACE(
'TICKER: IBM IBM Corporation Inc.',
'(.*):[[:space:]](.*)[[:space:]](.*)', '\1|\2|\3')
FROM dual;
Результат:
REGEXP_REPLACE('TICKER:IBMIBMCORPORATIONINC.','(.*):[[:SPACE:]](.*)[[:SPACE:]](.*)','\1|\2|\3')
--------------------------------------------------------------------------------
TICKER|IBM IBM Corporation|Inc.
Что я упускаю в регулярном выражении?
Спасибо.
Вопрос: Вы пробовали '' \ 2''? См. Также: https://docs.oracle.com/cd/B19306_01/server.102/b14200/ap_posix001.htm#BABJDBHB – paulsm4