oracle正则表达式匹配手机特号

     Oracle10g提供了在查询中使用正则表达的功能,它是通过各种支持正则表达式的函数在where子句中实现的。本文将简单的介绍oracle正则表达式常用语法,并通过一个手机特号匹配的例子演示正则表达式的使用。

  • oracle正则表达常用语法        

   定位元字符

元字符

说明

^

使表达式定位至一行的开头

$

使表达式定位至一行的末尾

  量词或重复操作符

量词

说明

*

匹配 0 次或更多次

?

匹配 0 次或 1 次

+

匹配 1 次或更多次

{m}

正好匹配 m

{m,}

至少匹配 m

{m, n}

至少匹配 m 次但不超过 n

 POSIX 字符类

字符类

说明

[:alpha:]

字母字符

[:lower:]

小写字母字符

[:upper:]

大写字母字符

[:digit:]

数字

[:alnum:]

字母数字字符

[:space:]

空白字符(禁止打印),如回车符、换行符、竖直制表符和换页符

[:punct:]

标点字符

[:cntrl:]

控制字符(禁止打印)

[:print:]

可打印字符

 模式匹配

项目

说明

\n

n为一个 1 到 9 之间的数字,反斜线匹配之前的用括号括起来的第n个子表达式。

()

子表达式。

[]

字符列表

REGEXP_LIKE 函数

语法

说明

REGEXP_LIKE(source_string, pattern
[, match_parameter])

source_string 支持字符数据类型(CHAR、VARCHAR2、CLOB、NCHAR、NVARCHAR2 和 NCLOB,但不包括 LONG)。pattern 参数是正则表达式的另一个名称。match_parameter 允许可选的参数(如处理换行符、保留多行格式化以及提供对区分大小写的控制)。

 

  • oracle正则表达匹配手机特号   

     尾号四连号:([0123456789])\1\1\1$   如:13498212222、13613431111

                     sql:select * from tb_phone where REGEXP_LIKE(phone_no,'([0123456789])\1\1\1$')

     尾号四连顺:(0123|1234|2345|3456|4567|5678|6789)$  如:13576531234、13623432345

     尾号倒四连顺:(9876|8765|7654|6543|5432|4321|3210)$  如:13512329876、13676987654

     尾号00XX:00[[:digit:]][[:digit:]]$  如:13512320023、13512320035

     尾号AABB:([[:digit:]])\1([[:digit:]])\2$  如:13567545566

     尾号ABAB:([[:digit:]]{2})\1$   如:13545341212

     尾号AAAB:([[:digit:]])\1\1[[:digit:]]$  如:13564326667

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值