zoukankan      html  css  js  c++  java
  • 在ibatis下匹配特殊*(oracle数据库)

    <isNotNull prepend="AND" property="endNumber">
                <isNotEmpty property="endNumber">
                	<isNotNull property="isRuleEndNumber">
                	<isNotEmpty property="isRuleEndNumber">
                		<isEqual property="isRuleEndNumber" compareValue="1">
    		            	<isEqual property="endNumber" compareValue="-4">
    					substr(t.UIM_CARD,11,1)!=4
    				</isEqual>
    				<isEqual property="endNumber" compareValue="AABAA">
    					substr(t.UIM_CARD,11,1)=substr(t.UIM_CARD,10,1)
    					and substr(t.UIM_CARD,8,1)=substr(t.UIM_CARD,7,1) 
    					and substr(t.UIM_CARD,9,1)!=substr(t.UIM_CARD,10,1)
    				</isEqual>
    				<isEqual property="endNumber" compareValue="AAA">
    					substr(t.UIM_CARD,10,1)=substr(t.UIM_CARD,9,1) 
    					and substr(t.UIM_CARD,9,1)=substr(t.UIM_CARD,11,1)
    					and substr(t.UIM_CARD,9,1)!=substr(t.UIM_CARD,8,1)
    				</isEqual>
    				<isEqual property="endNumber" compareValue="ABC">
    					regexp_like(substr(t.UIM_CARD,9,3),'^(012|123|234|345|456|567|678|789)$$')
    					and to_number(substr(t.UIM_CARD,8,1))+1!=to_number(substr(t.UIM_CARD,9,1))
    				</isEqual>
    				<isEqual property="endNumber" compareValue="AAAA">
    					regexp_like(substr(t.UIM_CARD,8,4),'^([0-9])1{3}$$')
    				</isEqual>
    				<isEqual property="endNumber" compareValue="ABCD">
    					regexp_like(substr(t.UIM_CARD,8,4),'^(0123|1234|2345|3456|4567|5678|6789)$$')
    				</isEqual>
    				<isEqual property="endNumber" compareValue="AABB">
    					substr(t.UIM_CARD,10,1)=substr(t.UIM_CARD,11,1)
    					and substr(t.UIM_CARD,8,1)=substr(t.UIM_CARD,9,1)
    					and substr(t.UIM_CARD,9,1)!=substr(t.UIM_CARD,10,1)
    				</isEqual>
    				<isEqual property="endNumber" compareValue="ABAB">
    					substr(t.UIM_CARD,8,1)=substr(t.UIM_CARD,10,1)
    					and substr(t.UIM_CARD,9,1)=substr(t.UIM_CARD,11,1)
    					and to_number(substr(t.UIM_CARD,10,1))+1=substr(t.UIM_CARD,11,1)
    				</isEqual>
    				<isEqual property="endNumber" compareValue="88">
    					substr(t.UIM_CARD,10,2)='88'
    				</isEqual>
                		</isEqual>
                	</isNotEmpty>
                	</isNotNull>
    		<isNotNull property="isRuleEndNumber">
                 	 <isNotEmpty property="isRuleEndNumber">
                  		<isEqual property="isRuleEndNumber" compareValue="0">
                   			#endNumber#=substr(t.UIM_CARD,11-length(#endNumber#)+1,length(#endNumber#))
                  		</isEqual>
                 	 </isNotEmpty>
                 	</isNotNull>
     上面分两部分,一部分按照规则匹配号码,下面部分按照尾数匹配号码.这些代码都是能正常使用的。
     
    以下一些正则表达式来自网上,本人仔细研究测试过,能在JAVA代码里面使用,但是不能在SQL语句中使用:String s="5678";
      System.out.println(s.matches("^[0-9](?:(?<=0)1|(?<=1)2|(?<=2)3|(?<=3)4|(?<=4)5|(?<=5)6|(?<=6)7|(?<=7)8|(?<=8)9){3}$"));
      String s2="11";
      System.out.println(s2.matches("^([0-9])\1$"));
      String pwd ="666";
      String regx = "^(\d)\1{2}$";以上都返回true String aabb="1122";
    System.out.println(aabb.matches("^([0-9])\1([0-9])\2$"));
      
    String abab="1212";
    System.out.println(abab.matches("^([0-9](?:(?<=0)1|(?<=1)2|(?<=2)3|(?<=3)4|(?<=4)5|(?<=5)6|(?<=6)7|(?<=7)8|(?<=8)9){1})\1$"));以上也都返回true String s="544354645435";
    System.out.println(s.matches("^[^0-9]*$"));这个是false,呵呵。。
    
    
    
    

  • 相关阅读:
    竞赛生每日一题(212) 徐康华竞赛优学
    利用python爬取特定类别图片---labelimg制作自己的目标检测数据集
    Labview各版本及开发工具模块下载
    Windows安装tensorflow经验总结(尤其安装GPU版本的细看)
    opencv与labview的结合(升级版:彩色图像的传输)
    opencv与Labview的结合(Dll调用)
    QT如何重写控件内部的函数 ——趣味小程序(按钮随机移动,鼠标无法点击)
    QT多个窗体切换显示
    QT实现鼠标操作事件(获得鼠标的坐标和间值)
    VS/C++/win10/opencv 神经网络数字识别
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3201193.html
Copyright © 2011-2022 走看看