【发布时间】:2016-08-31 15:54:47
【问题描述】:
我有一个字符串 'TICKER: IBM IBM Corporation Inc.'我想删除代码和它的值,只在 Oracle PL/SQL 中获取剩余的值。
所以我做了这个查询,但它没有按照我的预期工作:
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
更新:
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'吗?另见:docs.oracle.com/cd/B19306_01/server.102/b14200/…
标签: oracle regexp-replace