巧用Like运算符

LIke:用来比较两个字符串。

Like 运算符的语法具有以下几个部分:

部分描述
result必需的;任何数值变量
string必需的;任何字符串表达式
pattern必需的;任何字符串表达式,遵循“说明”中的模式匹配约定。
如果 string pattern 匹配,则 resultTrue;如果不匹配,则resultFalse。但是如果 string pattern 中有一个为 Null,则 resultNull

内建的模式匹配功能提供了多种工具来进行字符串比较。有了模式匹配功能就可以使用通配符、字符串列表或字符区间的任何组合来匹配字符串。下列表格指出pattern 中允许的字符以及它们与什么进行匹配:

pattern 中的字符 符合 string 中的
?任何单一字符。
*零个或多个字符。
#任何一个数字 (0–9)。
[charlist]charlist.中的任何单一字符。
[!charlist]不在 charlist 中的任何单一字符。

在中括号 ([ ]) 中,可以用由一个或多个字符 (charlist) 组成的组与string 中的任一字符进行匹配,这个组几乎包括任何一个字符代码以及数字。

注意 为了与左括号 ([)、问号 (?)、数字符号 (#) 和星号 (*) 等特殊字符进行匹配,可以将它们用方括号括起来。不能在一个组内使用右括号 (]) 与自身匹配,但在组外可以作为个别字符使用。

通过在范围的上、下限之间用连字符 (),charlist 可以指定字符的范围。例如,如果string 中相应字符的位置包括 A–Z 之间的任意大写字母,则[A-Z] 得到一个匹配。不需要分界符,方括号内就可以包括多个范围


下面列举的是模式匹配的其它重要规则:

  • charlist 开头的惊叹号(!) 意味着,如果在string 中找到任何不属于charlist 的字符,则存在一个匹配。如果在方括号之外使用惊叹号,则惊叹号与自身匹配。

  • 连字符 () 可以出现在 charlist的开头(如果使用惊叹号,则在惊叹号之后),也可以出现在 charlist的结尾与自身匹配。在任何其它地方,连字符用来识别字符的范围。

  • 当指定了字符范围时,这些字符必须按照升序(从最小到最大)顺序来显示。[A-Z] 是有效模式,但 [Z-A] 不是。

  • 字符序列 [] 被看作是长度为零的字符串 ("")。

本示例使用 Like 运算符做字符串的方式比较。

本示例使用 Like 运算符做字符串的方式比较。

Dim MyCheck
MyCheck = "aBBBa" Like "a*a"   ' 返回 True。
MyCheck = "F" Like "[A-Z]"   ' 返回 True。
MyCheck = "F" Like "[!A-Z]"   ' 返回 False。
MyCheck = "a2a" Like "a#a"   ' 返回 True。
MyCheck = "aM5b" Like "a[L-P]#[!c-e]"   ' 返回 True。
MyCheck = "BAT123khg" Like "B?T*"   ' 返回 True。
MyCheck = "CAT123khg" Like "B?T*"   ' 返回 False。


 
 
 
 
利用like运算符可以简单的实现文本框的限制字符:如只限制输入数字和字母:
Private Sub Text1_Change()
Dim s As String

For i = 1 To Len(Text1)
s = Mid(Text1, i, 1)
If s Like "[!0-9]" And s Like "[!A-Z]" And s Like "[!a-z]" Then
Text1 = Replace(Text1, s, "")
End If
Next

End Sub
注:资料摘自msdn,今天再限制范围的时候感觉特别好用,又复习一遍。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值