请问在oracle11g的正则表达式中,匹配一个不含<>的字符串,
regexp_like('dfdfdfdf<fdf','[^<>]*')
怎么返回的是TRUE啊?
大虾指导一下,该怎么定义这个正则表达式啊?

解决方案 »

  1.   


    --这样写
    select * from dual where not regexp_like('dfdfdfdf<fdf','[<>]+');
    --至于你的为什么为true,因它匹配的是非<>的字符,执行下面的你就看出来了
    select regexp_substr('dfdfdfdf<fdf','[^<>]*') from dual;
      

  2.   

    1楼正确,
    补充一点,如果要写成不用not的形式,要这么写select * from dual where  regexp_like('dfdfdfdf<fdf','^[^<>]*$');开始到结束都不是<>字符。