正则表达式提取优选号码

作者: 啊凡 分类: SQL,学习 发布时间: 2020-07-19 21:41
序号优选号码规则正则表达式备注
1AAAAAA^(\d)\1{5}匹配连续相同的尾数,其中{5}表示连续6位相同(5+1),其中(\d)中的d表明相同的数字,如果写([1|2|3])即相同的数字为1,2或3.
2AAAAAREGEXP_LIKE(REVERSE(号码),’^([6|7|9])\1{4}’) and not REGEXP_LIKE(REVERSE(号码),’^(\d)\1{5}’)66666/77777/99999, 同时剔除掉666666/777777/999999
3AAAAREGEXP_LIKE(REVERSE(号码),’^(\d)\1{3}’) and not REGEXP_LIKE(REVERSE(号码),’^(\d)\1{4}’)匹配AAAA,同时剔除掉AAAAA及AAAAAA
4AAABBB^(\d)\1\1(\d)\2\2或者^(\d)\1{2}(\d)\1{2}
5AABBB^(\d)\1\1(\d)\1{2}:
REGEXP_LIKE(REVERSE(号码),’^(\d)\1\1(\d)\1{2}’) and not REGEXP_LIKE(REVERSE(号码),’^(\d)\1\1(\d)\2\2′)
匹配AABBB,同时剔除掉AAABBB
6ABCDEF/FEDCBAsubstr(号码,-6,6) in (‘123456′,’234567′,’012345′,’345678′,’456789’,
‘987654’,’876543′,’765432′,’654321′,’543210′)
7AABBCC/CCBBAAsubstr(号码,-6,6) in (‘001122′,’112233′,’556677’, ‘778899’,
‘223344’,’334455′,’445566′,’998877′,’887766′,’776655′, ‘332211’, ‘221100’,’665544′,’554433′, ‘443322’)

备注: 结合case when, 可以实现不同号码规则对应不同的保底消费金额匹配,如下:

case
when REGEXP_LIKE(REVERSE(a.固话号码),’^(\d)\1{5}’) then 8000
when substr(a.固话号码,-5,5)=’88888′ and not REGEXP_LIKE(REVERSE(a.固话号码),’^(\d)\1{5}’ ) then 8000
when REGEXP_LIKE(REVERSE(a.固话号码),’^([6|7|9])\1{4}’) and not REGEXP_LIKE(REVERSE(a.固话号码),’^(\d)\1{5}’) then 5000
when REGEXP_LIKE(REVERSE(a.固话号码),’^([0|1|2|3|5])\1{4}’) and not REGEXP_LIKE(REVERSE(a.固话号码),’^(\d)\1{5}’) then 4000

发表评论

邮箱地址不会被公开。 必填项已用*标注