racleregexplike的相关知识及使用示例

上传人:xiao****1972 文档编号:84086575 上传时间:2019-03-02 格式:DOC 页数:3 大小:44.50KB
返回 下载 相关 举报
racleregexplike的相关知识及使用示例_第1页
第1页 / 共3页
racleregexplike的相关知识及使用示例_第2页
第2页 / 共3页
racleregexplike的相关知识及使用示例_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《racleregexplike的相关知识及使用示例》由会员分享,可在线阅读,更多相关《racleregexplike的相关知识及使用示例(3页珍藏版)》请在金锄头文库上搜索。

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

2、对象的 Multiline 属性,则 $ 也匹配 n 或 r。 ? 匹配前面的子表达式零次或一次。 * 匹配前面的子表达式零次或多次。| 指明两项之间的一个选择。例子(a-z+|0-9+)$表示所有小写字母或数字组合成的 ( ) 标记一个子表达式的开始和结束位置。 m,n 一个精确地出现次数范围,m=出现次数=n,m表示出现m次,m,表示至少出现m次。num 匹配 num,其中 num 是一个正整数。对所获取的匹配的引用。 :alpha: 任何字母。:digit: 任何数字。:alnum: 任何字母和数字。:space: 任何白字符。:upper: 任何大写字母。:lower: 任何小写字母。

3、:punct: 任何标点符号。:xdigit: 任何16进制的数字,相当于0-9a-fA-F。 转义符 *, +, ?, n, n, n,m 限定符, $, anymetacharacter 位置和顺序。1. createtablefzqidvarchar(4), 2. valuevarchar(10)-数据插入 3. insertintofzqvalues 4. (1,1234560); 5. insertintofzqvalues 6. (2,1234560); 7. insertintofzqvalues 8. (3,1b3b560); 9. insertintofzqvalues 10

4、. (4,abc); 11. insertintofzqvalues 12. (5,abcde); 13. insertintofzqvalues 14. (6,ADREasx); 15. insertintofzqvalues 16. (7,12345); 17. insertintofzqvalues 18. (8,adcde); 19. insertintofzqvalues 20. (9,adc,.de); 21. insertintofzqvalues 22. (10,1B); 23. insertintofzqvalues 24. (10,abcbvbnb); 25. insert

5、intofzqvalues 26. (11,11114560); 27. insertintofzqvalues 28. (11,11124560);-regexp_like-查询value中以1开头60结束的记录并且长度是7位。1. select*fromfzqwherevaluelike1_60; 2. select*fromfzqwhereregexp_like(value,1.60);-查询value中以1开头60结束的记录并且长度是7位并且全部是数字的记录。-使用like就不是很好实现了。1. select*fromfzqwhereregexp_like(value,10-9460)

6、; 2. select*fromfzqwhereregexp_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开头的记录.区分大小写。1.

7、 select*fromfzqwhereregexp_like(value,12B);select*fromfzqwhereregexp_like(value,:space:); 2. select*fromfzqwhereregexp_like(value,(a-z+|0-9+)$);select*fromfzqwhereregexp_like(value,:punct:);例子:判断姓名是否为空,少于两个字符,包含数字和字母1. createorreplace 2. FUNCTIONCheckName(NameStrinVARCHAR2)RETURNinteger 3. As 4. BEGIN 5. -符合返回1,不符合返回0 6. if(NameStrisnullorlength(NameStr)2)then 7. return0; 8. else 9. if(NameStrlike%未取名%)then 10. RETURN0; 11. endif; 12. ifregexp_like(NameStr,(a-z+|0-9+|A-Z+)$)then 13. return0; 14. endif; 15. return1; 16. endif; 17. ENDCheckName;来源:网络 编辑:联动北方技术论坛

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号