zoukankan      html  css  js  c++  java
  • Oracle命令分解之正则表达式搜索(一)

         SUBSTR、INSTR、LIKE、REPLACE和COUNT等函数的功能已得到加强和扩展,以支持正则表达式搜索。正则表达式支持许多标准化的控件和检查,例如,匹配指定的次数值、搜索标点符号或数字等。可以使用这些新函数在串中执行高级搜索。这些新函数分别命名为REGEXP_SUBSTR、REGEXP_INSTR、REGEXP_LIKE、REGEXP_REPLACE和REGEXP_COUNT。

         REGEXP_SUBSTR返回与source_string字符集中的VARCHAR2或CLOB数据相同的字符串.

         函数语法:

         REGEXP_SUBSTR(source_string,pattern

                  [,position

                  [,occurrence

                  [,match_parameter]

                          ]

                         ])

         重点关注parttern变量,即正则表达式。正则表达式可以包含512个字节。从其语法结构可以看出,也可以指定与postion、occurrence和match_parameter条件有关的参数。

        position变量告诉REGEXP_SUBSTR在source_string中从哪里开始搜索。默认position值为1(即第一个字符)。

        occurrence变量是一个整数,指出Oracle应该在source_string中搜索pattern指定的哪一次出现。默认的occurence值是1。在标准的SUBSTR函数中没有position变量和occurrence变量。这些变量表示对标准的SUBSTR的功能的重要扩展。

        可以使用match_parameter变量进一步定制搜索。match_parameter是一个文本量,允许对函数的默认匹配行为进行更改。这可能的取值有:

          @ 'i' 用于不区分 大小写的匹配

          @ 'c'用于区分大小写的匹配

          @ 'n'允许钟点(.)作为通配符去匹配换行符。如果省略该参数,则句点将不能匹配换行符

          @ 'm' 将源串视为多行。即Oracle将"^"和"$"分别看作源串中任意位置任何行的开始和结束,而不是仅仅看作整个源串的开始和结束。如果省略该 参数,则Oracle将源串看作一行。

        如果为match_parameter指定了多个相互矛盾的值,那么Oracle使用最后一个值。例如,如果指定‘ic’,Oracle将使用区分大小写的匹配。如果指定了上文中没有出现的字符,则Oracle将报错。

          如果略了match_parameter,则将会进行如下处理:

          @  默认区分大小写,这由NLS_SORT参数的值决定

          @ 句点(.)不匹配换行符

          @ 把源串视为一行

          @ 以下执行的REGEXP_SUBSTR搜索不区分大小写匹配:

              

    默认情况下是区分大小写的

  • 相关阅读:
    RESTful API 设计指南 (转)
    关于APP接口设计(转)
    申请付费苹果开发者账号 注意事项及流程 (转)
    Excel word “由于本机的限制_该操作已被取消_请与管理员联系”的已生效解决办法 (转 )
    iOS APP提交上架最新流程(转)
    Android 框架练成 教你打造高效的图片加载框架(转)
    intellij idea使用
    Android ImageView的scaleType属性与adjustViewBounds属性(转)
    android 教程实例系列
    打包时报错误调试
  • 原文地址:https://www.cnblogs.com/LeeYZ/p/2886585.html
Copyright © 2011-2022 走看看