REGEXPReplace使用方法.docxVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
REGEXP_REPLACE?函数?让我们首先看一下传统的?REPLACE?SQL?函数,它把一个字符串用另一个字符串来替换。假设您的数据在正文中有不必要的空格,您希望用单个空格来替换它们。利用?REPLACE?函数,您需要准确地列出您要替换多少个空格。然而,多余空格的数目在正文的各处可能不是相同的。下面的示例在?Joe?和?Smith?之间有三个空格。REPLACE?函数的参数指定要用一个空格来替换两个空格。在这种情况下,结果在原来的字符串的?Joe?和?Smith?之间留下了一个额外的空格。?SELECT?REPLACE(Joe?Smith,?,??)AS?replaceFROM?dualREPLACE---------Joe?Smith?REGEXP_REPLACE?函数把替换功能向前推进了一步,其语法在表?9?中列出。以下查询用单个空格替换了任意两个或更多的空格。(?)?子表达式包含了单个空格,它可以按?{2,}?的指示重复两次或更多次。?表?9:?REGEXP_REPLACE?函数??语法说明REGEXP_REPLACE(source_string,?pattern[,?replace_string?[,?position[,occurrence,?[match_parameter]]]])该函数用一个指定的?replace_string?来替换匹配的模式,从而允许复杂的有哪些信誉好的足球投注网站并替换操作。SELECT?REGEXP_REPLACE(Joe?Smith,(?){2,},??)AS?RX_REPLACEFROM?dualRX_REPLACE----------Joe?Smith?后向引用?正则表达式的一个有用的特性是能够存储子表达式供以后重用;这也被称为后向引用(在表?10?中对其进行了概述)。它允许复杂的替换功能,如在新的位置上交换模式或显示重复出现的单词或字母。子表达式的匹配部分保存在临时缓冲区中。缓冲区从左至右进行编号,并利用?\digit?符号进行访问,其中?digit?是?1?到?9?之间的一个数字,它匹配第?digit?个子表达式,子表达式用一组圆括号来显示。?接下来的例子显示了通过按编号引用各个子表达式将姓名?Ellen?Hildi?Smith?转变为?Smith,?Ellen?Hildi。?SELECT?REGEXP_REPLACE(Ellen?Hildi?Smith,(.*)?(.*)?(.*),?\3,?\1?\2)FROM?dualREGEXP_REPLACE(EL------------------Smith,?Ellen?Hildi?该?SQL?语句显示了用圆括号括住的三个单独的子表达式。每一个单独的子表达式包含一个匹配元字符?(.),并紧跟着?*?元字符,表示任何字符(除换行符之外)都必须匹配零次或更多次。空格将各个子表达式分开,空格也必须匹配。圆括号创建获取值的子表达式,并且可以用?\digit?来引用。第一个子表达式被赋值为?\1?,第二个?\2,以此类推。这些后向引用被用在这个函数的最后一个参数?(\3,?\1?\2)?中,这个函数有效地返回了替换子字符串,并按期望的格式来排列它们(包括逗号和空格)。表?11?详细说明了该正则表达式的各个组成部分。?后向引用对替换、格式化和代替值非常有用,并且您可以用它们来查找相邻出现的值。接下来的例子显示了使用?REGEP_SUBSTR?函数来查找任意被空格隔开的重复出现的字母数字值。显示的结果给出了识别重复出现的单词?is?的子字符串。?SELECT?REGEXP_SUBSTR(The?final?test?is?is?the?implementation,([[:alnum:]]+)([[:space:]]+)\1)?AS?substrFROM?dualSUBSTR------is?is?匹配参数选项?您可能已经注意到了正则表达式操作符和函数包含一个可选的匹配参数。这个参数控制是否区分大小写、换行符的匹配和保留多行输入。?正则表达式的实际应用?您不仅可以在队列中使用正则表达式,还可以在使用?SQL?操作符或函数的任何地方(比如说在?PL/SQL?语言中)使用正则表达式。您可以编写利用正则表达式功能的触发器,以验证、生成或提取值。?接下来的例子演示了您如何能够在一次列检查约束条件中应用?REGEXP_LIKE?操作符来进行数据验证。它在插入或更新时检验正确的社会保险号码格式。如?123-45-6789?和?123456789?之类格式的社会保险号码对于这种列约束条件是可接受的值。有效的数据必须以三个数字开始,紧跟着一个连字符,再加两个数字和一个连字符,最后又是四个数字。另一种表达式只允许?9?个连续的数字。竖线符号?(|)?将各个选项分开。?ALTER

文档评论(0)

185****7617 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档