我正在尝试替换字符串中的单词。我有一个字符串示例。例如。
转换前:
ADJ BASE RATE = ROUND(( BASE RATE * COV CHG FTR * IL LESS DED FTR * DMG RENT FTR * MED EXP ILF * MISC CRDT FTR * AMEND LL EXCL FCTR),3)
BASE RATE = 43.487; COV CHG FTR = 1; IL LESS DED FTR = 2.44; DMG RENT FTR = 1; MED EXP ILF = 1; MISC CRDT FTR = 1; AMEND LL EXCL FCTR = 1
CUSTOME RATE = ROUND(( BASE RATE * COV CHG FTR * IL LESS DED FTR * DMG RENT FTR * MED EXP ILF * MISC CRDT FTR * AMEND LL EXCL FCTR),3)
CUSTOME RATE = 43.487; COV CHG FTR = 1; IL LESS DED FTR = 2.44; DMG RENT FTR = 1.45; MED EXP ILF = 1; MISC CRDT FTR = 1; AMEND LL EXCL FCTR = 1
当我试图替换使用regular_replace和替换函数,通过只取代"DMG租金FTR“这个词。
我想买点这样的东西。
转换后:
ADJ BASE RATE = ROUND(( BASE RATE * COV CHG FTR * IL LESS DED FTR * MED EXP ILF * MISC CRDT FTR * AMEND LL EXCL FCTR),3)
BASE RATE = 43.487; COV CHG FTR = 1; IL LESS DED FTR = 2.44; MED EXP ILF = 1; MISC CRDT FTR = 1; AMEND LL EXCL FCTR = 1
CUSTOME RATE = ROUND(( BASE RATE * COV CHG FTR * IL LESS DED FTR * MED EXP ILF * MISC CRDT FTR * AMEND LL EXCL FCTR),3)
CUSTOME RATE = 43.487; COV CHG FTR = 1; IL LESS DED FTR = 2.44; MED EXP ILF = 1; MISC CRDT FTR = 1; AMEND LL EXCL FCTR = 1
发布于 2022-07-13 06:16:11
Nest REPLACE
s是一个简单的选项:
样本数据:
SQL> WITH
2 test (col)
3 AS
4 (SELECT 'ADJ BASE RATE = ROUND(( BASE RATE * COV CHG FTR * IL LESS DED FTR * DMG RENT FTR * MED EXP ILF * MISC CRDT FTR * AMEND LL EXCL FCTR),3)
5 BASE RATE = 43.487; COV CHG FTR = 1; IL LESS DED FTR = 2.44; DMG RENT FTR = 1; MED EXP ILF = 1; MISC CRDT FTR = 1; AMEND LL EXCL FCTR = 1
6 CUSTOME RATE = ROUND(( BASE RATE * COV CHG FTR * IL LESS DED FTR * DMG RENT FTR * MED EXP ILF * MISC CRDT FTR * AMEND LL EXCL FCTR),3)
7 CUSTOME RATE = 43.487; COV CHG FTR = 1; IL LESS DED FTR = 2.44; DMG RENT FTR = 1.45; MED EXP ILF = 1; MISC CRDT FTR = 1; AMEND LL EXCL FCTR = 1'
8 FROM DUAL)
查询:
9 SELECT REPLACE ( REPLACE (REPLACE (col, 'DMG RENT FTR *' , ''),
10 'DMG RENT FTR = 1;' , ''),
11 'DMG RENT FTR = 1.45;', '') result
12 FROM test;
RESULT
--------------------------------------------------------------------------------
ADJ BASE RATE = ROUND(( BASE RATE * COV CHG FTR * IL LESS DED FTR * MED EXP IL
F * MISC CRDT FTR * AMEND LL EXCL FCTR),3)
BASE RATE = 43.487; COV CHG FTR = 1; IL LESS DED FTR = 2.44; MED EXP ILF = 1; M
ISC CRDT FTR = 1; AMEND LL EXCL FCTR = 1
CUSTOME RATE = ROUND(( BASE RATE * COV CHG FTR * IL LESS DED FTR * MED EXP IL
F * MISC CRDT FTR * AMEND LL EXCL FCTR),3)
CUSTOME RATE = 43.487; COV CHG FTR = 1; IL LESS DED FTR = 2.44; MED EXP ILF = 1
; MISC CRDT FTR = 1; AMEND LL EXCL FCTR = 1
SQL>
发布于 2022-07-13 06:29:05
你想要替换'DMG租金FTR‘加上所有的字符,直到你遇到一个字母(在你的例子中的MED M)。换句话说:删除“DMG租金FTR”加上以下所有非字母。这就是:
REGEXP_REPLACE(str, 'DMG RENT FTR[^A-Z]*')
https://stackoverflow.com/questions/72961522
复制相似问题