日期:2014-05-16  浏览次数:21080 次

如何使用正则表达式把相应的手机吉祥号从数据库查询出来
如何使用正则表达式把相应的手机吉祥号从数据库查询出来(手机号位长为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


------解决方案--------------------
同理
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

至于正则毕竟是字符串匹配
像递增、递减涉及计算的功能,就要另寻方法了