现在没找到一本专门深入讲解正则表达式且结合oracle实现的书
取反、不包含oracle的只能用[^],但这个只能针对单个字符现在想实现真个字符串取反,就是不包含指定的多个字符在java和perl都有(?!)来实现
如(?!00).{2}表示除'00'的所有2位字符串,像01,10,12,ab只知道oracle有(?:)和(?=)
至于这种(?!)正向不匹配在oracle如何表示

解决方案 »

  1.   

    oracle中有
    where str not like '%00%'
    或者
    where not regexp_like (str,'00')
      

  2.   

    用not like/regexp_like 只能对整个字段取反
    用正则的目的就是就是可以对字段的任意位置字符灵活判断
    比如1个长度为10字符串,要求3-4位不能为'00',5-8位不能为'0000',随着判断分组的增多
    用not like会难以实现