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

  1、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 允许可选的参数(如处理换行符、保留多行格式化以及提供对区分大小写的控制)。

   2、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

转载于:

https://www.cnblogs.com/wanghonghu/archive/2012/05/12/2497392.html

oracle正则表达式语法介绍及实现手机号码匹配方法的更多相关文章

  1. C#正则表达式语法规则详解

    正则表达式通常包含字母文本(Literaltext)和元字符(metacharacter) 字母文本指的是普通文本如"abcde"可匹配字符串中任何包含"abcde&qu ...

  2. oracle 正则表达式 匹配

    oracle 正则表达式 在实际应用中,想排除带有中文的字段值: select h.froomnumber from t_broker_house h where REGEXP_LIKE(froomn ...

  3. Oracle存储过程基本语法介绍

    Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR RE ...

  4. Delphi 正则表达式语法(9): 临界匹配 - 也叫"预搜索"与"反向预搜索"

    Delphi 正则表达式语法(9): 临界匹配 - 也叫"预搜索"与"反向预搜索" //匹配右边 var   reg: TPerlRegEx; begin   ...

  5. Delphi 正则表达式语法(7): 匹配转义字符

    Delphi 正则表达式语法(7): 匹配转义字符 // ? 号的意义是匹配 0-1 次, 如果需要匹配 ? 怎么办 var   reg: TPerlRegEx; begin   reg := TPe ...

  6. Delphi 正则表达式语法(6): 贪婪匹配与非贪婪匹配

    Delphi 正则表达式语法(6): 贪婪匹配与非贪婪匹配 //贪婪匹配 var   reg: TPerlRegEx; begin   reg := TPerlRegEx.Create(nil);   ...

  7. Delphi 正则表达式语法(3): 匹配范围

    Delphi 正则表达式语法(3): 匹配范围 // [A-Z]: 匹配所有大写字母 var   reg: TPerlRegEx; begin   reg := TPerlRegEx.Create(n ...

  8. Oracle正则表达式

       Oracle正则表达式 正则表达式具有强大.便捷.高效的文本处理功能.能够添加.删除.分析.叠加.插入和修整各种类型的文本和数据.Oracle从10g开始支持正则表达式. 下面通过一些例子来说明 ...

  9. java 正则表达式语法

    java 正则表达式语法 标签: 正则表达式javawindowsvbscriptscripting电话 2012-05-20 10:11 6705人阅读 评论(1) 收藏 举报  分类: javaS ...

随机推荐

  1. git分支间切换注意点和bug分支的处理

    目录 备注: 知识点 记一次分支合并问题状况 从分支点开始,不同分支修改工作区的内容(不添加到暂存区和提交),切换分支,工作区的内容是一样的. 必须在提交或者暂存当前暂存区的状态后,再切换或合并分支 ...

  2. The Prices

    题目描述 你要购买\(m\)种物品各一件,一共有\(n\)家商店,你到第\(i\)家商店的路费为\(d[i]\),在第家商店购买第\(j\)种物品的费用为\(c[i][j]\),求最小总费用. 输入格 ...

  3. wordpress学习笔记

    版本:4.9.8 我用wordpress的初衷是借用它的后台系统,前端用自己的网页显示存在wordpress数据库里的文章. wordpress本质上是个框架,技术栈:web-php-mysql. 初 ...

  4. 时间序列知识图谱-《利用Python进行数据分析》

    所有内容整理自<利用Python进行数据分析>,使用MindMaster Pro 7.3制作,emmx格式,源文件已经上传Github,需要的同学转左上角自行下载或者右击保存图片. 其他章 ...

  5. 【JVM之内存与垃圾回收篇】堆

    堆 堆的核心概念 堆针对一个 JVM 进程来说是唯一的,也就是一个进程只有一个 JVM,但是进程包含多个线程,他们是共享同一堆空间的. 一个 JVM 实例只存在一个堆内存,堆也是 Java 内存管理的 ...

  6. STL源码剖析:配置器

    作用:对内存的管理 接口:申请和释放 内容: 几个全局函数 一级配置器 二级配置器 准备知识 POD是什么: Plain Old Data简称POD,表示传统的C语言类型:与POD类型对应的是非POD ...

  7. 橘子origin游戏平台如何绑定登陆验证/二次验证码?

    任天堂游戏公司4月份16万用户数据被黑客盗取,官方呼吁用户绑定二次验证码.疫情期间游戏用户暴涨,黑客活动频率也在增长,想起R星俱乐部用户绑定两步验证给十金的长期活动实在是明智之举,下面说下橘子游戏平台 ...

  8. 利用python实现平稳时间序列的建模方式

    一.平稳序列建模步骤 假如某个观察值序列通过序列预处理可以判定为平稳非白噪声序列,就可以利用ARMA模型对该序列进行建模.建模的基本步骤如下: (1)求出该观察值序列的样本自相关系数(ACF)和样本偏 ...

  9. python thrift 实现 单端口多服务的过程

    Thrift 是一种接口描述语言和二进制通信协议.以前也没接触过,最近有个项目需要建立自动化测试,这个项目之间的微服务都是通过 Thrift 进行通信的,然后写自动化脚本之前研究了一下. 需要定义一个 ...

  10. element上传功能携带参数

    在写element的上传功能时,需要对上传的文件携带参数,但是参数比较多,就需要一个对象合并的方法,Object.assign() Object.assign(target, source1, sou ...