我有一个字符串{1:F01BPHKPLPKXXX0000000000}
,我需要使用1:F01BPHKPLPKXXX0000000000
从中提取regex_substr
。你能帮帮我吗?
答案 0 :(得分:1)
为什么要使用REGEXP_SUBSTR?用手枪杀死一只老鼠?
你只需要TRIM
这些大括号。
SQL> WITH DATA AS(
2 SELECT q'[{1:F01BPHKPLPKXXX0000000000}]' STR FROM DUAL)
3 select rtrim(ltrim(str,'{'),'}') str from data
4 /
STR
--------------------------
1:F01BPHKPLPKXXX0000000000
SQL>
答案 1 :(得分:0)
这个怎么样:
select regexp_replace('{1:F01BPHKPLPKXXX0000000000}', '{(.*)}', '\1')
from dual
它包括括号和输出之间的所有内容。
如果您使用substr
:
select substr(var, 2, length(var)-2)
from (select '{1:F01BPHKPLPKXXX0000000000}' var from dual)
答案 2 :(得分:0)
尝试以下方法:
SELECT REGEXP_SUBSTR('{1:F01BPHKPLPKXXX0000000000}', '[^{].*[^}]') FROM DUAL
分享并享受。
答案 3 :(得分:0)
我只想使用regexp_replace。我只使用交替运算符|
,因此我要求在字符串末尾替换{
(使用锚点^
)和}
(使用锚$
)。
SCOTT@dev> WITH a_tab AS
2 (SELECT '{1:F01BPHKPLPKXXX0000000000}' a_col FROM dual
3 )
4 SELECT regexp_replace (a_col, '^{|}$') FROM a_tab
5 /
REGEXP_REPLACE(A_COL,'^{|}$')
==========================
1:F01BPHKPLPKXXX0000000000