数据库中使用的正则表达式摘要
本文通过两个例子向您介绍数据库中使用的正则表达式的概要。这里就不多说了,具体请看下面。
例1:
函数dbo.regexptest (@ sourcevarchar(),-要匹配的源字符串@ regexpvarchar(),-正则表达式@ ignore case bit=-区分大小写吗?默认值为false) RETURNS位-返回结果-false,-true作为begin-(成功)或非零数字(失败),这是OLE自动化对象返回的HRESULT的整数值。DECLARE @hr integer -用于保存返回的对象令牌,以便以后操作对象。DECLARE @ objregexpintegerDECLARE @ objmatches integer-保存结果DECLARE @results bit /*创建OLE对象实例。只有sysadmin固定服务器角色的成员才能执行sp_OACreate,并确保有VBScript。机器中的RegExp类库*/exec @ HR=sp _ oacreate ' VBScript . RegExp ',@ objregexp输出if @ HR begin set @ results=return @ results end/*为新创建的对象设置了以下三个属性。以下是“VBScript”中常用属性的示例。RegExp ':
“调暗正则表达式,匹配,匹配”来创建变量。“设置正则表达式=新正则表达式”创建一个通用表达式。RegEx。“模式=patrn”设置模式。RegEx。“忽略=真”设置是否区分大小写。RegEx。“全局=真”设置全局可用性。set matches=regEx . execute(string)'重复匹配集RegExpTest=regEx。“执行(strng)”以执行搜索。对于匹配项'重复匹配集retstr=retstr '中的每个匹配项,在位置' retstr=retstr match '找到匹配项。“第一索引”。匹配值为' ' retstr=retstr match。值' '。vbCRLF Next regex ptest=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 @ END EXEC @ HR=sp _ OASetProperty @ objRegExp,' IgnoreCase ',@忽略大小写IF @ HR BEGIN SET @ results=RETURN @ results END-调用对象方法exec @ HR=sp _ oamethod @ source if @ HR begin set @ results=return @ results end-释放创建的OLE对象exec @ HR=sp _ oadestroy @ objregexpif @ HR begin set @ results=return @ results。 END RETURN @results END -打开高级选项sp _ configure '显示高级选项',重新配置-设置选项打开sp _ configure' ole自动化程序',重新配置示例2:
使用REGEXP和NOT REGEXP运算符(或RLIKE和NOT RLIKE,它们是同义词)进行匹配测试。
扩展正则表达式的一些字符是:匹配任何单个字符。字符类"[.]"匹配方括号中的任何字符。例如,“[abc]”匹配“a”、“b”或“c”。若要命名字符范围,请使用“-”。“[a-z]”匹配任何字母,而“[0-9]”匹配任何数字。*匹配零个或多个字符。例如,“x*”匹配任意数量的“x”字符,“[0-9]*”匹配任意数量的数字,以及”。* "匹配任意数量的任意字符。
如果REGEXP模式匹配测试值中的任何位置,则模式匹配(与相似的模式匹配不同,只有当模式匹配整个值时,模式才匹配)。
要定位一个模式,使其必须与测试值的开头或结尾相匹配,请在模式的开头使用“”,或在模式的结尾使用“$”。
Mysql实例:
在myname中查询以w开头的数据:
在myname中以g结尾的查询数据:
包含w的查询数据:
包含六个字符的数据:
您可以使用“{n}”“重复n次”运算符:
以上内容是对数据库中使用的正则表达式的总结,我们通过两个例子与大家分享。希望对你有帮助。
版权声明:数据库中使用的正则表达式摘要是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。