• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    数据库中使用正则表达式小结

    本篇文章通过两个示例给大家介绍数据库中使用正则表达式小结,在此不多说,具体内容请看下文详解吧。

    示例一:

    CREATE FUNCTION dbo.RegExpTest ( 
    @source varchar(), --需要匹配的源字符串 
    @regexp varchar(), --正则表达式 
    @ignorecase bit = --是否区分大小写,默认为false 
    ) 
    RETURNS bit --返回结果-false,-true 
    AS 
    BEGIN 
    --(成功)或非零数字(失败),是由OLE 自动化对象返回的HRESULT 的整数值。 
    DECLARE @hr integer 
    --用于保存返回的对象令牌,以便之后对该对象进行操作 
    DECLARE @objRegExp integer DECLARE @objMatches integer 
    --保存结果 
    DECLARE @results bit 
    /* 
    创建OLE 对象实例,只有sysadmin 固定服务器角色的成员才能执行sp_OACreate,并确定机器中有VBScript.RegExp类库 
    */ 
    EXEC @hr = sp_OACreate 'VBScript.RegExp', @objRegExp OUTPUT 
    IF @hr > BEGIN 
    SET @results = 
    RETURN @results 
    END 
    /* 

    以下三个分别是设置新建对象的三个属性。下面是'VBScript.RegExp'中常用的属性举例:

    Dim regEx,Match,Matches '建立变量。 
    Set regEx = New RegExp '建立一般表达式。 
    regEx.Pattern= patrn '设置模式。 
    regEx.IgnoreCase = True '设置是否区分大小写。 
    regEx.Global=True '设置全局可用性。 
    set Matches=regEx.Execute(string) '重复匹配集合 
    RegExpTest = regEx.Execute(strng) '执行搜索。 
    for each match in matches '重复匹配集合 
    RetStr=RetStr "Match found at position " 
    RetStr=RetStrMatch.FirstIndex".Match Value is '" 
    RetStr=RetStrMatch.Value"'."vbCRLF Next 
    RegExpTest=RetStr 
    */ 
    EXEC @hr = sp_OASetProperty @objRegExp, 'Pattern', @regexp 
    IF @hr > BEGIN 
    SET @results = 
    RETURN @results 
    END 
    EXEC @hr = sp_OASetProperty @objRegExp, 'Global', false 
    IF @hr > BEGIN 
    SET @results = 
    RETURN @results 
    END 
    EXEC @hr = sp_OASetProperty @objRegExp, 'IgnoreCase', @ignorecase 
    IF @hr > BEGIN 
    SET @results = 
    RETURN @results 
    END 
    --调用对象方法 
    EXEC @hr = sp_OAMethod @objRegExp, 'Test', @results OUTPUT, @source 
    IF @hr > BEGIN 
    SET @results = 
    RETURN @results 
    END 
    --释放已创建的OLE 对象 
    EXEC @hr = sp_OADestroy @objRegExp 
    IF @hr > BEGIN 
    SET @results = 
    RETURN @results 
    END 
    RETURN @results 
    END 
    --打开高级选项
    sp_configure 'show advanced options',
    reconfigure
    --设置选项打开
    sp_configure 'Ole Automation Procedures',
    reconfigure

    示例二:

    使用REGEXP和NOT REGEXP操作符(或RLIKE和NOT RLIKE,它们是同义词)进行匹配测试。

    扩展正则表达式的一些字符是:

    ·         ‘.'匹配任何单个的字符。
    ·         字符类“[...]”匹配在方括号内的任何字符。例如,“[abc]”匹配“a”、“b”或“c”。为了命名字符的范围,使用一个“-”。“[a-z]”匹配任何字母,而“[0-9]”匹配任何数字。
    ·         “ * ”匹配零个或多个在它前面的字符。例如,“x*”匹配任何数量的“x”字符,“[0-9]*”匹配任何数量的数字,而“.*”匹配任何数量的任何字符。

    如果REGEXP模式与被测试值的任何地方匹配,模式就匹配(这不同于LIKE模式匹配,只有与整个值匹配,模式才匹配)。

    为了定位一个模式以便它必须匹配被测试值的开始或结尾,在模式开始处使用“^”或在模式的结尾用“$”。

    mysql实例:

    查询myname中以w开头的数据:

    查询myname中以g结尾的数据:

    查询包含w的数据:

    包含六个字符的数据:

    可以使用“{n}”“重复n次”操作符:


    以上内容是脚本之家小编给大家通过两段示例给大家分享的数据库中使用正则表达式小结,希望对大家有所帮助。

    您可能感兴趣的文章:
    • 在MySQL中用正则表达式替换数据库中的内容的方法
    上一篇:python3爬虫之入门基础和正则表达式
    下一篇:ORACLE数据库中怎么求除数字、字母之外的非中文字符的正则表达式
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    数据库中使用正则表达式小结 数据库,中,使用,正则,表达式,