python带通配符的字符串匹配_数据库教程-SQL Server通配符与模式匹配

7cff2d669d6e5726c13345258b8b53b6.png

模式匹配及模糊查询

数据查询是数据库的核心功能之一,其中使用like关键字可以实现待查询字段与指定的模式进行匹配查询。本文主要介绍SQL Server中用于实现LIKE模糊查询相关模式匹配的基本概念及对部分典型模式匹配进行说明。


模式匹配基本概念

模式匹配主要用于实现对字符串进行操作。其基本原理是通过使用一个模式字符串来匹配符合条件的字符串。在T-SQL语言Where条件语句对记录集进行筛选的过程中通过使用LIKE关键字实现模糊查询,即字符串的匹配操作,其匹配的规则,我们可以理解为模式匹配。模式匹配的核心在于规则本身,相关说明如下:

1、通配符

通配符是一类特殊的字符,用来替代待匹配字符串中的字符,是构成匹配规则pattern的基本元素之一。T-SQL中主要通配符包括以下4类:

%:表示任意长度字符串;

_:表示长度为1的任意字符;

[charlist]:匹配字符列表中的任一字符,如[a-z],[0-9];

[^charlist]:匹配未在字符列表中出现的任一字符;

2、匹配规则

匹配规则是在使用通配符的情况下,确定目标字符串是否与规则一致的过程,结合实际使用情况归纳主要规则如下:

(1)仅匹配长度,对内容无要求

如果仅需要匹配字符串的长度,而对内容无要求,我们可以使用"_"进行匹配,按照通配符定义,该符号指一位任意字符。

如要求目标字符串为6位,可以定义匹配规则为:'[______]',包括6个_。

(2)即规定长度又需满足内容要求

很多情况下需要对字段长度及字符串内容与指定要求一致进行判断,则可以通过使用_与[]等通配符的组合实现规则的编写。

如查询要求满足字符串长度为10,其中前4位为数字,则可以编写规则为:'[0-9][0-9][0-9][0-9]______',包括4个[]与6个_构成10位。

(3)子串匹配要求

子串匹配要求只需要检测待匹配的字符串中包含指定的子串,可以通过使用%通配符实现规则的编写。

如查找名字中包含王的字符串,则规则可以编写为:'%王%';如要求查找王姓的姓名,则编写规则为'王%'。

(4)特殊格式要求

特殊格式要求主要根据数据库所存储的数据类型特点而定义的特殊格式,主要格式包括电话号码、银行卡号、身份证号、电子邮件地址、网址URL等,这些数据本身具有对应的格式,因此在进行模糊查询时可以综合使用4类通配符,构建符合要求的匹配规则。部分模糊匹配规则如下:

1、电话号码匹配规则

电话号码主要由区号加号码所组成,长度一般为11为或者12为,其中区号与号码通过“-”进行连接。因此可以编写规则如下:

'[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'

2、有效URL筛选规则

URL本身有固定格式,因此可以直接编写规则,要求字符串中包含指定的字符即可,编写规则如下:

'%[A-Z0-9] [.] [A-Z0-9]%[A-Z0-9] [/] [A-Z0-9]%'

3、电子邮件规则

电子邮件格式规定,其中包含了指定的特殊字符,因此编写规则如下:

'%[A-Z0-9][@][A-Z0-9]%[.][A-Z0-9]%'

综上所述,我们可以通过通配符的组合,定义出模糊查询规则,通过使用模糊匹配实现比直接使用where 与and效率更高的记录筛选。


本头条号长期关注编程资讯分享;编程课程、素材、代码分享及编程培训。如果您对以上方面有兴趣或代码错误、建议与意见,可以联系作者,共同探讨。期待大家关注!相关文章链接如下:

数据库教程-SQL Server海量数据的快速存储

数据库教程-SQL Server存储过程使用及异常处理

数据库教程-SQL Server多条件模糊查询

数据库教程-SQL Server查询结果列转行实现与分析

数据库教程-SQL Server数据字典查询及导出

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值