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

              

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

  • 相关阅读:
    CSDN的博客是肿么了?
    SQL Server 2005: 存储过程签名
    SQLSERVER中数据行所占用的最小空间
    如何配置 SQL Server 2005 以允许远程连接
    XamlPad小程序
    OPEN SYMMETRIC KEY scope in SQL Server
    SQL Server 2005 helpful catalogs: crypt_properties and key_encryptions
    WPF Unleashed Chapter 3:Important New Concepts in WPF Routed Events
    xp_cmdshell
    SQL Server 2005: 如何让用户只能加密数据却不能解密数据
  • 原文地址:https://www.cnblogs.com/LeeYZ/p/2886585.html
Copyright © 2011-2022 走看看