- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ORACLE 正则表达式
?
一.??? :
正则表达式,就是以某种模式来匹配一类字符串。一旦概括了某类字符串,那么正则表达式即可用于针对字符串的各种相关操作。例如,判断匹配性,进行字符串的重新组合等。正则表达式提供了字符串处理的快捷方式。Oracle 10g及以后的版本中也支持正则表达式.
?
二.??? :
1.?????? 正则表达式中不仅存在着代表模糊字符的特殊字符,而且存在着量词等修饰字符,使得模式的控制更加灵活和强大。
2.?????? 通配符的使用一般是在特定的环境下,不同的环境下,通配符有可能不同。而正则表达式,不但广泛应用于各种编程语言,而且在各种编程语言中,保持了语法的高度一致性。
?
三.??? :
元字符是指在正则表达式中表示特殊含义的字符。
?
ORACLE正则表达式 元字符 含义 ^ 匹配输入字符串的开始位置,在方括号表达式中使用,此时它表示不接受该字符集合。 $ 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 n 或 r。 . 匹配除换行符 n之外的任何单字符。 ? 匹配前面的子表达式零次或一次。 + 匹配前面的子表达式一次或多次。 * 匹配前面的子表达式零次或多次。 | 指明两项之间的一个选择。例子^([a-z]+|[0-9]+)$表示所有小写字母或数字组合成的字符串。 () 标记一个子表达式的开始和结束位置(字符组)。 [] 标记一个中括号表达式。 {m,n} 一个精确地出现次数范围,m=出现次数=n,{m}表示出现m次,{m,}表示至少出现m次。 四.???
???量词用来指定量词的前一个字符出现的次数。量词的形式主要有“?”、“*”、“+”、“{}”。量词在用于匹配字符串时,默认遵循贪婪原则。贪婪原则是指,尽可能多地匹配字符。例如:字符串“Function(p),(OK)”,如果使用正则表达式“\(.*\)”进行匹配,则得到字符串“(p),(OK)” ,而非“(p)”;若欲得到“(p)”,则必须取消量词的贪婪原则,此时只需要为量词后追加另外一个数量词“?”即可。如上面的正则表达式应该改为“\(.*?\)”。
五.??? :
元字符在正则表达式中有特殊含义。如果需要使用其原义,则需要用到字符转义。字符转义使用字符“\”来实现。其语法模式为:“\”+元字符。例如,“\.”表示普通字符“.”; “\.doc”匹配字符串“.doc”;而普通字符“\”需要使用“\\”来表示。
?
六.??? .
字符组是指将模式中的某些部分作为一个整体。这样,量词可以来修饰字符组,从而提高正则表达式的灵活性。字符组通过()来实现.
许多编程语言中,可以利用“$1”、“$2”等来获取第一个、第二个字符组,即所谓的后向引用。在Oracle中,引用格式为“\1”、“\2”。
?
七.???
可以利用“|”来创建多个正则表达式分支。例如,“\d{4}|\w{4}”可以看做两个正则表达式——“\d{4}”和“\w{4}”,匹配其中任何一个正则表达式的字符串都被认为匹配整个正则表达式。如果该字符串两个正则表达式分支都匹配,那么将被处理为匹配第一个正则表达式分支。
?
八.??? .
在Oracle中,正则表达式的用法与标准用法略有不同。这种不同主要体现在对于字符类的定义上。Orale中不使用字符“\”与普通字符组合的形式来实现字符类,而是具有其特殊语法.
ORACLE字符类 表示 含义 [[:alpha:]] 表示任意字母,正则表达式的一般语法为\w。 [[:digit:]] 表示任意数字,正则表达式的一般语法为\d。 [[:lower:]] 表示任意小写字母。 [[:upper:]] 表示任意大写字母。 [[:alnum:]] 表示任意字母和数字。 [[:space:]] 表示任意空白字符,正则表达式的一般语法为\s。 [[:punct:]] 表示任意标点符号。 [[:xdigit:]] 表示任意16进制的数字,相当于[0-9a-fA-F]。 ?
九.??? ORACLE.
1.?????? regexp_like(expression, regexp)
返回值为一个布尔值。如果第一个参数匹配第二个参数所代表的正则表达式,那么将返回真,否则将返回假。
举例: select * from people where regexp_like(name, ^J.*$);
相当于: select * from people where name like J%;
2.?????? regexp_instr(expression, regexp, startindex, times)
文档评论(0)