日期:2014-05-17  浏览次数:20798 次

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

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

------解决方案--------------------
1楼正确,
补充一点,如果要写成不用not的形式,要这么写

select * from dual where  regexp_like('dfdfdfdf<fdf','^[^<>]*$');


开始到结束都不是<>字符。