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搜索不区分大小写匹配:

              

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

  • 相关阅读:
    node.js 安装后怎么打开 node.js 命令框
    thinkPHP5 where多条件查询
    网站title中的图标
    第一次写博客
    Solution to copy paste not working in Remote Desktop
    The operation could not be completed. (Microsoft.Dynamics.BusinessConnectorNet)
    The package failed to load due to error 0xC0011008
    VS2013常用快捷键
    微软Dynamics AX的三层架构
    怎样在TFS(Team Foundation Server)中链接团队项目
  • 原文地址:https://www.cnblogs.com/LeeYZ/p/2886585.html
Copyright © 2011-2022 走看看