如何使用正则表达式把相应的手机吉祥号从数据库查询出来(手机号位长为11位,嘻嘻),例如
????????AAA 尾号3个一样的:尾号000、111、222、333、444、555.....
这个可以这样
select  * from table_name regexp_like(code,'(0{3}$)|(1{3}$)|(2{3}$)|(3{3}$)|(4{3}$)
|(5{3}$)|(6{3}$)|(7{3}$)|(8{3}$)|(9{3}$)');下面其它几种的正则表达式该如何写呢,谢谢!
1、
???????AABB 尾号0011、1122、2233、3344、4455、5566.......2、
???????ABAB 尾号1010、1212、2323、以及5959、9292之类的.......3、
???????ABBA 尾号1331、6556、9559........4、
????????BCD 尾号234、345、456、678、890、012....以及987、654等倒顺的5、
???????ABCD 尾号0123、1234、2345、3456、4567、5678、7890

解决方案 »

  1.   

    select * from table_name regexp_like(code,'(0{3}$)|(1{3}$)|(2{3}$)|(3{3}$)|(4{3}$)
    |(5{3}$)|(6{3}$)|(7{3}$)|(8{3}$)|(9{3}$)');这句可以改为 \数字  表示引用前面的第几个子模式
    select * 
    from t
    where regexp_like(a,'([0-9])\1\1$')
    ;
      

  2.   

    同理
    regexp_like(a,'([0-9])\1\1$') 号码末3位相同
    regexp_like(a,'([0-9])\1([0-9])\2$') 末4位为:AABB
    regexp_like(a,'([0-9])([0-9])\1\2$') 末4位为:ABAB
    regexp_like(a,'([0-9])([0-9])\2\1$') 末4位为:ABBA至于正则毕竟是字符串匹配
    像递增、递减涉及计算的功能,就要另寻方法了
      

  3.   

    regexp_like(code,'[0-9]{3}$'); --111
    regexp_like(code,'([0-9]{2})\1$'); --0011
    regexp_like(code,'([0-9][0-9])\1$'); --1010