字符串如下U#:aaaaaaaaaaaaaa#:AUDIT#:2#:0#:0#:0#:#:#:#:#;U#:bbbbbbbbbbbbb#:AUDIT#:2#:0#:0#:0#:#:#:#:#;我想截取到aaaaaaaaaaaaaa和bbbbbbbbbbbbb,都是以U#:开头和#:结尾的

解决方案 »

  1.   

    SELECT regexp_replace('U#:aaaaaaaaaaaaaa#:AUDIT#:2#:0#:0#:0#:#:#:#:#;U#:bbbbbbbbbbbbb#:AUDIT#:2#:0#:0#:0#:#:#:#:#;','[^U#:a-z#:]+|U#:|#:|#','') AS STR
    FROM dualSTR                           
    ----------------------------- 
    aaaaaaaaaaaaaaUbbbbbbbbbbbbbU 剩下的事情,自己解决吧
      

  2.   

    太牛了,老大。说说思路吧,后面的'[^U#:a-z#:]+|U#:|#:|#'看不懂,是正则表达式吗?
      

  3.   

    正则表达式,
    [^U#:a-z#:]+|U#:|#:|#
    分两段解释
    [^U#:a-z#:]+
    --解释:[U#:a-z#:]表示U#:开头,#:结尾,中间为小字英文字符
    --'+' 匹配前面的子表达式一次或多次。
    --'^' 匹配输入字符串的开始位置,在方括号表达式中使用,此时它表示不接受该字符集合。
    |U#:|#:|#
    --解释:'|' 指明两项之间的一个选择。
      

  4.   

    aaaaaaaaaaaaaaUbbbbbbbbbbbbbU 
    中间怎么会有个U呢?