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

oracle手机号码检验字数_oracle正则表达式匹配手机特号相关推荐

  1. oracle手机号码检验字数_oracle判断手机号码是否合法

    oracle判断手机号码是否合法 发布时间:2020-04-06 02:28:53 来源:51CTO 阅读:1192 合法手机号码:都是11位数,并且以13.15.18开头的. create or r ...

  2. oracle手机号码检验字数_oracle 检验身份证号是否正确基本方法

    此前在文章中给出了函数和存储过程是如何判断身份证号是否是正确的,下面我详列下判断方法: 1.号码的结构 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成.排列顺序从左至右依次为:六位数字地 ...

  3. oracle手机号码检验字数_oracle根据检验规则获取正确身份证号

    CREATE OR REPLACE FUNCTION FN_GETIDBYCHECK(IDS VARCHAR2) RETURN VARCHAR2 /** 20140321根据身份证号获取经过校验的身份 ...

  4. oracle手机号码检验字数_短信字数在线测试

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  5. 请用正则表达式匹配出QQ号(假设QQ号码为5—10位);

    请用正则表达式匹配出QQ号(假设QQ号码为5-10位): 解答: ^ \d{5,10}$ 转载于:https://www.cnblogs.com/borter/p/9548333.html

  6. oracle匹配靓号的正则表达式_手机靓号计算规则的正则表达式

    手机靓号规则很多如连号.尾号重复等等, 但很少有完整说明的材料.因工作需要,我也做过一些学习,查了不少资料. 现在整理下规则,供大家学习使用. "*AAA*" 正则表达式:&quo ...

  7. oracle中取反_oracle正则表达式regexp_like的用法详解

    oracle正则表达式regexp_like的用法详解 更新时间:2013年06月13日 17:42:05   作者: 本篇文章是对oracle正则表达式regexp_like的用法进行了详细的分析介 ...

  8. 正则表达式匹配手机4位尾号

    import re ret = re.findall(r'((?<=\d)\d{4})+\b','12345678901 38473456 2305578 349579174 178698674 ...

  9. 正则表达式匹配二代身份证号

    1.居民身份证号码的结构(转自百度百科) 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码. 地 ...

最新文章

  1. IntelliJ IDEA :Error:(1, 1) java: 非法字符: '\ufeff'
  2. beego 文件服务器,beego自动化文档
  3. python教程:模块的作用与说明
  4. 下1000个用户的云计算革命
  5. [译]Hour 7 Teach.Yourself.WPF.in.24.Hours
  6. SSIS包如何动态指定文件路径
  7. bzoj 1797: [Ahoi2009]Mincut 最小割 (网络流)
  8. 当systeminfo不能显示系统启动时间了--用命令行修复一下
  9. mysql切换二进制日志命令_Mysql二进制日志binlog命令
  10. 当想给下一个请求发送同享的数据时候 可以使用域对象设置属性
  11. LINUX/MAC的rpath,搜索依赖库时从哪里开始
  12. 关于umask函数和creat函数
  13. 动态加载Web Service
  14. 调试 STM32F429 + USB3300
  15. HMC5883L手册总结与经验分析 详解
  16. Pandas 之DataFrame二维表基础操作及演示
  17. 【菜鸟收藏:全方位掌握Excel的ROUNDUP函数设置】
  18. 点乘a*b和叉乘aXb
  19. 舔砖加瓦(java)之java常用类
  20. HALCON数组的插入和删除

热门文章

  1. MySQL优化之表分区
  2. 2D.处女座与重修费(C++)
  3. Bootloader和BIOS、uboot和grub和bootmgr的区别
  4. axios拦截器(请求拦截和响应拦截)
  5. 渗透测试和红蓝对抗是什么意思?有什么区别?
  6. 玩家眼中的10大最烧钱网络游戏
  7. ShellCode生成器
  8. Zynq-Linux移植学习笔记之46-光模块I2C驱动移植
  9. 传感器课程作业 车载激光雷达
  10. 大数据时代社交网络个人信息安全研究