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

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

示例一:

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=RetStr&Match.FirstIndex&".Match Value is '" RetStr=RetStr&Match.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次”操作符:

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

时间: 2024-10-26 00:30:54

数据库中使用正则表达式小结的相关文章

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

本篇文章通过两个示例给大家介绍数据库中使用正则表达式小结,在此不多说,具体内容请看下文详解吧. 示例一: CREATE FUNCTION dbo.RegExpTest ( @source varchar(), --需要匹配的源字符串 @regexp varchar(), --正则表达式 @ignorecase bit = --是否区分大小写,默认为false ) RETURNS bit --返回结果-false,-true AS BEGIN --(成功)或非零数字(失败),是由OLE 自动化对象

swift中的正则表达式小结_正则表达式

作为一门先进的编程语言,Swift 可以说吸收了众多其他先进语言的优点,但是有一点却是让人略微失望的,就是 Swift 至今为止并没有在语言层面上支持正则表达式. 正则表达式的用处: 判断给定的字符串是否符合某一种规则(专门用于操作字符串) - 电话号码,电子邮箱,URL... - 可以直接百度别人写好的正则 - 别人真的写好了,而且测试过了,我们可以直接用 - 要写出没有漏洞正则判断,需要大量的测试,通常最终结果非常负责 过滤筛选字符串,网络爬虫 替换文字,QQ聊天,图文混排 语法规则 使用过

MySql数据库中Select用法小结_Mysql

一.条件筛选 1.数字筛选:sql = "Select * from [sheet1$] Where 销售单价 > 100" 2.字符条件:sql = "Select * from [sheet1$] Where 物品名称 ='挡泥板'" 3.日期条件:sql = "Select * from [sheet1$] Where 物品名称 ='挡泥板'" 4.区间条件:sql = "Select * from [sheet1$] Wh

ORACLE数据库中怎么求除数字、字母之外的非中文字符的正则表达式_正则表达式

最近做项目,有这样一需求:ORACLE数据库中求除数字.字母之外的非中文字符的正则表达式 如有如下字段,需将其中除字母.数字.汉字外的其他所有字符替换为空 'asdfsad ,,:)()!@123234#$%^&*(我w 是e ? 中国人../\[]::''""一人' 最终得到值:asdfsad123234我是中国人一人 select FN_REG_REPLACEOTHER('asdfsad ,,:)()!@#$%^&*(我是?中国人../\[]::''"&q

探究Python中的正则表达式

  这篇文章主要介绍了Python中的正则表达式的一些用法,正则表达式的使用是Python学习进阶中的重要知识,需要的朋友可以参考下 字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在.比如判断一个字符串是否是合法的Email地址,虽然可以编程提取@前后的子串,再分别判断是否是单词和域名,但这样做不但麻烦,而且代码难以复用. 正则表达式是一种用来匹配字符串的强有力的武器.它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它"匹配&q

T-SQL中的正则表达式

正则 T-SQL中的正则表达式 原作者:Cory Koski发表时间:2003/06/24         本文来自Cory Koski.Cory写道:"我最近遇到一个问题,就是试图在数据库域中搜索一个正则表达式.还没有一个版本的SQLServer内部支持正则表达式,但我发现了一个将正则表达式的所有优点添加到你的T_SQL应用的方法.为了更容易的使用正则表达式,我们可以使用自定义函数(User Defined Function, UDF)来帮助我们并使工作简洁." 在这个解决方案中,我

在Groovy中编写正则表达式

与Java相比, 在Groovy中编写正则表达式(regexes)简直是一种乐趣.在 Java中, regexes编程不仅需处理Pattern和Matcher对象,而且还要编写繁琐的 样板代码(boilerplate coding).而Groovy对这两个Java对象做了简单封装, 添加了一些额外的实用方法,并给出一个简化的新的语法和3个新的操作符. Groovy中,您可用slashy(斜线)语法"/../"定义字符串.这样以来便可避 免在Java正则表达式中使用过多的反斜线.例如:

各位高手们,我想抓取新闻信息到数据库中,求指教

问题描述 各位高手们,我想抓取新闻信息到数据库中,求指教 各位高手们,我想抓取新闻信息到数据库中,求指教,麻烦加我QQ交流一下 解决方案 最好是能用asp能写出来 解决方案二: 可以跟你说说我的思路,后边你可以自己完成: 1.先获取新闻页面的html 代码 2. 通过正则表达式 获取你想要的内容 解决方案三: 百度火车头采集,很好用的采集软件 自己写要分析新闻页面内容,前后截取了,asp下载网页DEMO:asp xmlHttp用法举例 解决方案四: js等抓去html页面内容. 分析DOM类容

java采集网页信息,并获取到所需要的信息存入数据库中对应的字段中去 (可以自动创建表头)

问题描述 java采集网页信息,并获取到所需要的信息存入数据库中对应的字段中去 (可以自动创建表头) "java采集网页信息,并获取到所需要的信息存入数据库中对应的字段中去 "创建好数据库的情况下可以插入对应数据了,现在我想实现自动创建表头,请问如何实现?请各位大大支招^_^ 解决方案 用正则表达式http://www.cnblogs.com/longwu/archive/2011/12/24/2300110.html 解决方案二: 没有你想象中的这么智能,要采集什么网页信息,入到什么