在oracle里怎么从一段string里,截取如下的2段string?
字符串如下
U#:aaaaaaaaaaaaaa#:AUDIT#:2#:0#:0#:0#:#:#:#:#;U#:bbbbbbbbbbbbb#:AUDIT#:2#:0#:0#:0#:#:#:#:#;
我想截取到aaaaaaaaaaaaaa和bbbbbbbbbbbbb,都是以U#:开头和#:结尾的
------解决方案--------------------SELECT regexp_replace('U#:aaaaaaaaaaaaaa#:AUDIT#:2#:0#:0#:0#:#:#:#:#;U#:bbbbbbbbbbbbb#:AUDIT#:2#:0#:0#:0#:#:#:#:#;','[^U#:a-z#:]+|U#:|#:|#','') AS STR
FROM dual
STR
-----------------------------
aaaaaaaaaaaaaaUbbbbbbbbbbbbbU
剩下的事情,自己解决吧
------解决方案--------------------正则表达式,
[^U#:a-z#:]+|U#:|#:|#
分两段解释
[^U#:a-z#:]+
--解释:[U#:a-z#:]表示U#:开头,#:结尾,中间为小字英文字符
--'+' 匹配前面的子表达式一次或多次。
--'^' 匹配输入字符串的开始位置,在方括号表达式中使用,此时它表示不接受该字符集合。
|U#:|#:|#
--解释:'|' 指明两项之间的一个选择。