如何在 oracle 中使用 REGEXP_REPLACE 函数删除字符串中的一个或多个 '?*' 实例?
How to remove one or more instances of '?*' in a string using REGEXP_REPLACE function in oracle?
我在名为 Line 的列中得到字符 '?*'
一到三次。我需要删除这些字符。如何使用 Replace
或 REGEXP_REPLACE
?
SELECT
Line, REGEXP_REPLACE(LINE,'[?*]','')--([^\+]+)
FROM
TABLE
WHERE
INSTR(LINE,'?*') != 0;
哪里
REGEXP_REPLACE(LINE,'\?*','')
单独替换 ?
并保持 *
不变。
REGEXP_REPLACE(LINE,'?*','')
替换 nothing
.
REGEXP_REPLACE(LINE,'[?*]','')
替换所有 ?s
和所有 *s
。我只在 ?
和 *
合并为 ?*
时替换。
使用(\?\*)
作为模式:
with tab(line) as
(
select 'abc?*ghh*?g?l*' from dual union all
select '?*U?KJ*H' from dual union all
select '*R5?4*&t?*frg?*' from dual
)
select regexp_replace(line,'(\?\*)','') as "Result String"
from tab;
Result String
-------------
abcghh*?g?l*
U?KJ*H
*R5?4*&tfrg
如果您需要删除字符串 '?*'
,您可以使用 replace
:
SQL> with test(string) as (
2 select 'aa?*b?' from dual union all
3 select 'a*a?*??b?' from dual union all
4 select 'a*a??b???c*?**cc' from dual union all
5 select 'aa?b?*?cc?d??*?*?' from dual
6 )
7 select string, replace(string, '?*', '') as result
8 from test;
STRING RESULT
----------------- ---------------
aa?*b? aab?
a*a?*??b? a*a??b?
a*a??b???c*?**cc a*a??b???c**cc
aa?b?*?cc?d??*?*? aa?b?cc?d??
我在名为 Line 的列中得到字符 '?*'
一到三次。我需要删除这些字符。如何使用 Replace
或 REGEXP_REPLACE
?
SELECT
Line, REGEXP_REPLACE(LINE,'[?*]','')--([^\+]+)
FROM
TABLE
WHERE
INSTR(LINE,'?*') != 0;
哪里
REGEXP_REPLACE(LINE,'\?*','')
单独替换 ?
并保持 *
不变。
REGEXP_REPLACE(LINE,'?*','')
替换 nothing
.
REGEXP_REPLACE(LINE,'[?*]','')
替换所有 ?s
和所有 *s
。我只在 ?
和 *
合并为 ?*
时替换。
使用(\?\*)
作为模式:
with tab(line) as
(
select 'abc?*ghh*?g?l*' from dual union all
select '?*U?KJ*H' from dual union all
select '*R5?4*&t?*frg?*' from dual
)
select regexp_replace(line,'(\?\*)','') as "Result String"
from tab;
Result String
-------------
abcghh*?g?l*
U?KJ*H
*R5?4*&tfrg
如果您需要删除字符串 '?*'
,您可以使用 replace
:
SQL> with test(string) as (
2 select 'aa?*b?' from dual union all
3 select 'a*a?*??b?' from dual union all
4 select 'a*a??b???c*?**cc' from dual union all
5 select 'aa?b?*?cc?d??*?*?' from dual
6 )
7 select string, replace(string, '?*', '') as result
8 from test;
STRING RESULT
----------------- ---------------
aa?*b? aab?
a*a?*??b? a*a??b?
a*a??b???c*?**cc a*a??b???c**cc
aa?b?*?cc?d??*?*? aa?b?cc?d??