• 在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,呵呵。。
    
    
    
    

  • 相关阅读:
    httpclient之基本类
    安卓开发遇到的各种问题
    C#获取字符串宽度像素
    Android开发参考资料
    Windows Phone开发参考资料
    Windows Phone锁屏背景相关代码
    Windows Phone Launcher class
    Windows Phone SplashScreen初始屏幕示例
    ASP如何实现注册后发送激活邮件?
    SkyDrive开发申请ClientID
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3201193.html
Copyright © 2020-2023  润新知