regex sql oracle数据库中两字符串的抽取

pbwdgjma  于 2022-12-19  发布在  Oracle
关注(0)|答案(1)|浏览(193)

我需要提取一个字符串,它将位于两个字符之间,并始终具有相同的模式
样本字符串:
一个CRN_MOB_H_001 a--〉〈平均值列表
粗体AVLB表示的是我想要提取的内容,整个字符串将始终具有相同的模式,而〈之前的所有内容都与我无关。字符串将始终具有相同的模式:
一些可能包含特殊字符的字符串,如〈〉,虽然这种情况不太可能发生,但如果过于复杂,可以忽略
一个空间
然后--〉
一个空间
然后是有趣的部分〈XXXXXXX
XXXXXXX表示要提取的部分
谢谢你抽出时间。
我试了好几种方法,都没有达到我想要的效果。

06odsfpq

06odsfpq1#

请尝试这个REGEXP_SUBSTR(),它会选取出现在字串结尾的尖括号中的内容。
请注意,WITH子句只是设置测试数据,是一种很好的方式,可以为人们提供数据以帮助您。

WITH tbl(str) AS (
  SELECT 'A CRN_MOB_H_001 a--> <AVLB>' FROM dual
)
SELECT REGEXP_SUBSTR(str, '.*<(.*)>$', 1, 1, NULL, 1) DATA
FROM tbl;

DATA
----
AVLB
1 row selected.

相关问题