-2
我试图提取Oracle中插入符号标志之间的值的字段的提取BETWEEN CARET正负号值在Oracle
值
AAA_0^%CELEBRTE%^S~AAA_2^TOP^S~simpLE^True^S~AAA1^NICE^S~
输出
^%CELEBRTE% TOP True NICE
任何帮助将是赞赏
我试图提取Oracle中插入符号标志之间的值的字段的提取BETWEEN CARET正负号值在Oracle
值
AAA_0^%CELEBRTE%^S~AAA_2^TOP^S~simpLE^True^S~AAA1^NICE^S~
输出
^%CELEBRTE% TOP True NICE
任何帮助将是赞赏
此作品:
SQL> SELECT regexp_replace('AAA_0^%CELEBRTE%^S~AAA_2^TOP^S~simpLE^True^S~AAA1^NICE^S~'
2 , '^[^^]*\^([^^]*)\^[^^]*\^([^^]*)\^[^^]*\^([^^]*)\^[^^]*\^([^^]*)\^.*'
3 , '\1 \2 \3 \4') rr
4 FROM dual;
RR
------------------------
%CELEBRTE% TOP True NICE
很显然,假设您只有4项要从数据中提取。
我不是正则表达式大师,作为我自己的练习,我用我认为是蛮力的方法解决了这个问题。我可以看到一组重复的模式来提取每个字符串,但是在我对此的研究中,似乎没有办法做到自动创建新捕获组的“重复反向引用”。如果其他人知道如何做到这一点,我会欢迎提供意见。
正则表达式的一对夫妇方便的资源:
嘛,你尝试过什么? – OldProgrammer
regexp_substr将是一个起点。 –