早教吧作业答案频道 -->其他-->
用oracle正则表达式1.号码尾数后4位含3个以上(含3个)相同号码----如AAAA、BAAA、AAAA,注A不等于B2.号码尾数后4位按顺序连续递增或递减----如ABCD、DCBA,注A、B、C、D均不相等3.号码尾数后4位排序
题目详情
用oracle正则表达式
1.号码尾数后4位含3个以上(含3个)相同号码----如AAAA、BAAA、AAAA,注A不等于B
2.号码尾数后4位按顺序连续递增或递减----如ABCD、DCBA,注A、B、C、D均不相等
3.号码尾数后4位排序有规律且规律重复----如ABAB、AABB、BAAB,注A不等于B
4.号码尾数后8位,其中有6位以上数字排序有规律且规律重复次数超过2次以上(含2次)的号码----AAABBB**、**AABAAB、**ABBABB、**ABCABC、*AABAAB*、*ABBABB*、*ABCABC*、AABAAB**、ABBABB**、ABCABC**,注A、B、C不相等
1.号码尾数后4位含3个以上(含3个)相同号码----如AAAA、BAAA、AAAA,注A不等于B
2.号码尾数后4位按顺序连续递增或递减----如ABCD、DCBA,注A、B、C、D均不相等
3.号码尾数后4位排序有规律且规律重复----如ABAB、AABB、BAAB,注A不等于B
4.号码尾数后8位,其中有6位以上数字排序有规律且规律重复次数超过2次以上(含2次)的号码----AAABBB**、**AABAAB、**ABBABB、**ABCABC、*AABAAB*、*ABBABB*、*ABCABC*、AABAAB**、ABBABB**、ABCABC**,注A、B、C不相等
▼优质解答
答案和解析
CREATE TABLE test_phone (
phone_number varchar(20)
);
INSERT INTO test_phone
SELECT '13812345678' FROM dual UNION ALL
SELECT '13812345566' FROM dual UNION ALL
SELECT '13812345656' FROM dual UNION ALL
SELECT '13812345556' FROM dual UNION ALL
SELECT '13812346666' FROM dual UNION ALL
SELECT '13855661234' FROM dual UNION ALL
SELECT '13856561234' FROM dual UNION ALL
SELECT '13855561234' FROM dual UNION ALL
SELECT '13866661234' FROM dual;
-- AAAA 结尾的
SELECT
*
FROM
test_phone
WHERE
REGEXP_LIKE(REVERSE(phone_number), '^(\d)\1\1\1');
PHONE_NUMBER
----------------------------------------
13812346666
-- AABB 结尾的
SELECT
*
FROM
test_phone
WHERE
REGEXP_LIKE(REVERSE(phone_number), '^(\d)\1([^\1])\2')
AND NOT REGEXP_LIKE(REVERSE(phone_number), '^(\d)\1\1\1');
PHONE_NUMBER
----------------------------------------
13812345656
-- ABAB 结尾的
SELECT
*
FROM
test_phone
WHERE
REGEXP_LIKE(REVERSE(phone_number), '^(\d)(\d)\1\2')
AND NOT REGEXP_LIKE(REVERSE(phone_number), '^(\d)\1\1\1');
PHONE_NUMBER
----------------------------------------
13812345656
递增的用正则表达式处理很麻烦. 我就只列几个简单的吧.
CREATE TABLE test_phone (
phone_number varchar(20)
);
INSERT INTO test_phone
SELECT '13812345678' FROM dual UNION ALL
SELECT '13812345566' FROM dual UNION ALL
SELECT '13812345656' FROM dual UNION ALL
SELECT '13812345556' FROM dual UNION ALL
SELECT '13812346666' FROM dual UNION ALL
SELECT '13855661234' FROM dual UNION ALL
SELECT '13856561234' FROM dual UNION ALL
SELECT '13855561234' FROM dual UNION ALL
SELECT '13866661234' FROM dual;
-- AAAA 结尾的
SELECT
*
FROM
test_phone
WHERE
REGEXP_LIKE(REVERSE(phone_number), '^(\d)\1\1\1');
PHONE_NUMBER
----------------------------------------
13812346666
-- AABB 结尾的
SELECT
*
FROM
test_phone
WHERE
REGEXP_LIKE(REVERSE(phone_number), '^(\d)\1([^\1])\2')
AND NOT REGEXP_LIKE(REVERSE(phone_number), '^(\d)\1\1\1');
PHONE_NUMBER
----------------------------------------
13812345656
-- ABAB 结尾的
SELECT
*
FROM
test_phone
WHERE
REGEXP_LIKE(REVERSE(phone_number), '^(\d)(\d)\1\2')
AND NOT REGEXP_LIKE(REVERSE(phone_number), '^(\d)\1\1\1');
PHONE_NUMBER
----------------------------------------
13812345656
看了 用oracle正则表达式1....的网友还看了以下:
若a+b=b+c,则a-b(c为整式)若a=b,则ac=bc(c为整式)若ac=bc,则a=b(c 2020-04-22 …
分解因式(a-b-c)(a+b-c)-(b-c-a)(b+c-a)正确答案是这个:(a+b-c)( 2020-05-17 …
求教分析一道代数式值题的解答过程.题目是这样的:已知(b+c)/a=(a+c)/b=(a+b)/c 2020-05-20 …
有难度M{A,B,C}==(A+B+C)/3m{A,B,C}=A(A为三数中最小的一个)则若M{A 2020-06-13 …
a(b-c)^5+b(c-a)^5+c(a-b)^5分解为(a-b)(b-c)(c-a)L(aa( 2020-07-09 …
求证:A∩(B∪C)=(A∪B)∩(A∪C)(1)假设x∈A∩(B∪C),则x∈A且x∈B∪C,所 2020-07-20 …
设a,b,c都是正数且a+b+c=1,求证:(1+a)(1+b)(1+c)≥8(1-a)(1-b) 2020-07-25 …
有三个数a,b,c,其中满足a+b>c,b+c>a,a+c>b,结果是有三个数a,b,c,其中满足a 2020-11-01 …
在三角形ABC和三角形A'B'C'中CD,C'D'分别是高,并且AC=A'C;,CD=C'D',∠A 2020-11-28 …
已知a+b+c=0,abc不等于0,且a,b,c,互不相等,求证:[(b-c)/a+(c-a)/b+ 2020-12-01 …