正则表达式 知识整理.doc_第1页
正则表达式 知识整理.doc_第2页
正则表达式 知识整理.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Oracle Oracle Oracle Oracle 正则表达式函数 : regexp_like regexp_like regexp_like regexp_like 、 regexp_substr regexp_substr regexp_substr regexp_substr 、 regexp_instr regexp_instr regexp_instr regexp_instr 、regexp_replace regexp_replace regexp_replace regexp_replace/*ORACLE 中的支持正则表达式的函数主要有下面四个:1 , REGEXP_LIKE :与 LIKE 的功能相似2 , REGEXP_INSTR :与 INSTR 的功能相似3 , REGEXP_SUBSTR :与 SUBSTR 的功能相似4 , REGEXP_REPLACE :与 REPLACE 的功能相似它们在用法上与 Oracle SQL 函数 LIKE 、 INSTR 、 SUBSTR 和 REPLACE 用法相同,但是它们使用 POSIX 正则表达式代替了老的百分号( % )和通配符( _ )字符 。POSIX 正则表达式由标准的元字符( metacharacters )所构成: 匹配输入字符串的开始位置 , 在方括号表达式中使用 , 此时它表示不接受该字符集合。$ 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 n 或 r 。. 匹配除换行符之外的任何单字符。? 匹配前面的子表达式零次或一次。+ 匹配前面的子表达式一次或多次。* 匹配前面的子表达式零次或多次。| 指明两项之间的一个选择 。 例子 (a-z+|0-9+)$ 表示所有小写字母或数字组合成的字符串。( ) 标记一个子表达式的开始和结束位置。 标记一个中括号表达式。m,n 一个精确地出现次数范围, m= 出现次数 =n , m 表示出现 m 次 , m, 表示至少出现 m 次。num 匹配 num ,其中 num 是一个正整数。对所获取的匹配的引用。字符簇::alpha: 任何字母。:digit: 任何数字。:alnum: 任何字母和数字。:space: 任何白字符。:upper: 任何大写字母。:lower: 任何小写字母。:punct: 任何标点符号。:xdigit: 任何 16 进制的数字,相当于 0-9a-fA-F 。各种操作符的运算优先级 转义符(), (?:), (?=), 圆括号和方括号*, +, ?, n, n, n,m 限定符, $, anymetacharacter 位置和顺序|*/- 创建表create table fzq(id varchar(4),value varchar(10);- 数据插入insert into fzq values(1,1234560);insert into fzq values(2,1234560);insert into fzq values(3,1b3b560);insert into fzq values(4,abc);insert into fzq values(5,abcde);insert into fzq values(6,ADREasx);insert into fzq values(7,123 45);insert into fzq values(8,adc de);insert into fzq values(9,adc,.de);insert into fzq values(10,1B);insert into fzq values(10,abcbvbnb);insert into fzq values(11,11114560);insert into fzq values(11,11124560);-regexp_like- 查询 value 中以 1 开头 60 结束的记录并且长度是 7 位select * from fzq where value like 1_60;select * from fzq where regexp_like(value,1.60);- 查 询 valu e 中 以 1 开 头 6 0 结束的记录并且长度 是 7 位并且全部是数字的记录 。- 使用 like 就不是很好实现了。select * from fzq where regexp_like(value,10-9460);- 也可以这样实现,使用字符集。select * from fzq where regexp_like(value,1:digit:460);- 查询 value 中不是纯数字的记录select * from fzq where not regexp_like(value,:digit:+$);- 查询 value 中不包含任何数字的记录。select * from fzq where regexp_like(value,:digit:+$);- 查询以 12 或者 1b 开头的记录 . 不区分大小写。select * from fzq where regexp_like(value,12b,i);- 查询以 12 或者 1b 开头的记录 . 区分大小写。select * from fzq where regexp_like(value,12B);- 查询数据中包含空白的记录。select * from fzq where regexp_like(value,:space:);- 查询所有包含小写字母或者数字的记录。select * from fzq where regexp_like(value,(a-z+|0-9+)$);- 查询任何包含标点符号的记录。select * from fzq where regexp_like(value,:punct:);/*理解它的语法就可以了。其它的函数用法类似。*/- 实际应用姓名中包含 王 圣 王圣峰的 人员SELECT * FROM WHERE regexp_like(name,( 王 | 圣 | 王圣峰 )查询 包含 A,E,F 的 字段SQL Select 性质 From 部门 Where Regexp_Like( 性质 , .*A.*E.*F.*);性质-A,B,C,D,E,FA,E,F,GA,B,C,D,E,F,G,H,I,J,L,M,NA,B,C,D,E,F,G,H,I,J,L,M,NA,E,FA,B,C,D,E,F,GA,E,FA,B,C,D,E,F,G,H,I,J,L,M,NA,E,F,GA,E,FA,E,FA,D,E,F12 rows selected解释 :该 SQL 语句显示了用圆括号括住的三个单独的子表达式 。 每一个单独的子表达式包含一个匹配元字符 (.) ,并紧跟着 * 元字符,表示任何字符(除换行符之外 ) 都必须匹配零次或更多次 。 空格将各个子表达式分开 , 空格也必须匹配 。圆括号创建获取

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论