本帖最后由 6rl 于 2014-07-08 09:26:35 编辑

解决方案 »

  1.   

    把第一个http中的p字符用键盘重新敲一遍试试
      

  2.   

    select REGEXP_substr('http://ttt.com http://22.com','h.+?p') from dual;
      

  3.   

    检查字符,例如在sqlplus中直接敲这段看下输出。如果还是有问题,那就是个bug
    非贪婪模式是这么定义的,因此不能正确匹配的时候先检查规则。例如1+1=2,如果查询出来=3,只能检查运算符或是数据是否有误,如果没错,只能报告bug要么不用非贪婪模式,你可以写成
    REGEXP_substr('http://ttt.com http://22.com','h[^p]+p')
      

  4.   

    REGEXP_substr('http://ttt.com http://pp.com','h[^p]+p')
      

  5.   

    被你绕进去了。
    我需要的是解决我的oracle环境不能使用非贪婪模式的问题,而不是正则语法问题。
      

  6.   

    看来是无解,是oracle的bug ,估计重装会解决问题