网站大量收购独家精品文档,联系QQ:2885784924

Oracle正则表达式的用法.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oracle正则表达式的用法

正则表达式具有强大、便捷、高效的文本处理功能。能够添加、删除、分析、叠加、插入和修整各种类型的文本和数据。Oracle从10g开始支持正则表达式 ? 一、Oracle预定义的 POSIX 字符类 ? 字符类 说明 [:alpha:] 字母字符[:lower:] 小写字母字符 [:upper:] 大写字母字符 [:digit:] 数字 [:alnum:] 字母数字字符 [:space:] 空白字符(禁止打印),如回车符、换行符、竖直制表符和换页符 [:punct:] 标点字符 [:cntrl:] 控制字符(禁止打印) [:print:] 可打印字符 [:alnum:] 字母和数字混合的字符 ? 二、正则表达式运算符和函数 1、REGEXP_SUBSTR ?REGEXP_SUBSTR为指定字符串的一部分与正则表达式建立匹配。 语法如下: REGEXP_SUBSTR(source_string, pattern, start_position, occurrence, match_parameter) 说明 其中source_string是必须的。可以是带引号的字符串或者变量。 Pattern是用单引号引用的与正则表达式。 Start_position指定了在字符串中的准确位置,默认值为1。 Occurrence是一个选项,指定在源字符串匹配过程中相对其他字符串,哪个字符串应该匹配。 最后,match_parameter也是一个选项,指定在匹配时是否区分大水写。 ? 实例 (1)、返回从ename的第二个位置开始查找,并且是以“L”开头到结尾的字串 SQL select regexp_substr(ename,L.*,2) substr from emp; ? (2)、 SELECT REGEXP_SUBSTR(mc,[a-z]+) FROM test; SELECT REGEXP_SUBSTR(mc,[0-9]+) FROM test; SELECT REGEXP_SUBSTR(aababcde,^a.*b) FROM DUAL; ? (3)、 ? SQL 代码 ??复制 REGEXP_INSTR(source_string, pattern [, start_position [, occurrence [, return_option [, match_parameter]]]]) 参数: start 开始查找的位置; occurrence 说明应该返回第几次出现pattern的位置; eturn_option 说明应该返回什么整数。若该参数为0,则说明要返回的整数是x中的一个字符的位置;若该参数为非0的整数,则说明要返回的整数为x中出现在pattern之后的字符的位置; match_option 修改默认的匹配设置。 ? 说明 该函数查找?pattern?,并返回该模式的第一个位置。您可以随意指定您想要开始有哪些信誉好的足球投注网站的start_position。?occurrence?参数默认为 1,除非您指定您要查找接下来出现的一个模式。return_option?的默认值为 0,它返回该模式的起始位置;值为 1 则返回符合匹配条件的下一个字符的起始位置。 ? 实例 (1)、 Select REGEXP_INSTR(mc,[[:digit:]]$) from test; Select REGEXP_INSTR(mc,[[:digit:]]+$) from test; Select REGEXP_INSTR(The price is $400.,$[[:digit:]]+) FROM DUAL; Select REGEXP_INSTR(onetwothree,[^[[:lower:]]]) FROM DUAL; Select REGEXP_INSTR(,,,,,,[^,]*) FROM DUAL; Select REGEXP_INSTR(,,,,,,[^,]) FROM DUAL; ? (2)、查找员工编号中第一个非数字字符的位置 select regexp_instr(empno,[^[:digit:]]) position from emp; ? (3)、从第三个字符开始,查找员工编号中第二个非数字字符的位置 select regexp_instr(empno,[^[:digit:]],3,2) position from emp; (4)、 ? SQL 代码 ??复制 3、REGEXP_LIKESQL 代码 ??复制 SQL 代码 ??复制

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档