[备查].NET Like模式匹配

模式选项

内置的模式匹配为字符串比较提供了一种多功能工具。模式匹配功能允许您将 string 中的每个字符与特定字符、通配符字符、字符列表或某个字符范围进行匹配。下表显示 pattern 中允许的字符和这些字符的匹配项。

pattern 中的字符

string 中的匹配项

?

任何单个字符

*

零或更多字符

#

任何单个数字(0 到 9)

[charlist]

charlist 中的任何单个字符

[!charlist]

不在 charlist 中的任何单个字符

字符列表

括在方括号 ([ ]) 内的一个或多个字符的组 (charlist) 可以用于匹配 string 中的任何单个字符,并且可以包含几乎任何字符代码(包括数字)。

charlist 开始处的感叹号 (!) 意味着仅当在 string 中找到除 charlist 以外的任何字符时才发生匹配。当在方括号外使用时,感叹号匹配它自己。

特殊字符

若要与左方括号 ([)、问号 (?)、数字号 (#) 和星号 (*) 这些特殊字符匹配,必须用方括号将它们括起。右方括号 (]) 不能在组中用来与自身匹配,但它可用在组外作为单个字符。

可以将字符序列 [] 视为零长度字符串 ("");但不能将其作为括在括号中的字符列表的一部分。如果要检查string 中的某个位置是包含一组字符还是不包含任何字符,可以使用两次 Like。有关示例,请参见如何:将字符串与模式相匹配

字符范围

通过使用连字符 (–) 将范围的上下限分开,charlist 可以指定字符的范围。例如,如果 string 中相应的字符位置包含范围 AZ 中的任何字符,则 [A–Z] 将引起匹配;如果相应的字符位置包含范围 HL 之外的任何字符,则 [!H–L] 将引起匹配。

在指定字符范围时,这些字符必须以升序排序顺序出现(即,从最低到最高)。因此,[A–Z] 是有效的模式,但 [Z–A] 不是。

多字符范围

若要为同一个字符位置指定多个范围,请将这些范围放在没有分隔符的同一对括号中。例如,如果 string 中相应的字符位置包含范围 AC 或范围 XZ 中的任何字符,则 [A–CX–Z] 将引起匹配。

连字符的用法

连字符 (–) 可以出现在 charlist 的开始处(如果有感叹号,则在它后面)或结尾处以匹配它自己。在任何其他位置,连字符标识由连字符两侧的字符界定的字符范围。

排序序列

指定的范围的含义取决于在运行时的字符排序(由 OptionCompare 和运行代码的系统的区域设置确定)。对于 OptionCompareBinary,范围 [A–E] 与 ABCD 和 E 匹配;对于 OptionCompareText,[A–E] 与AaÀàBbCcDdE 和 e 匹配。该范围与 Ê 或 ê 不匹配,因为按照排序顺序,重音字符在非重音字符之后。

二合字母字符

在某些语言中,有一些表示两种不同字符的字母字符。例如,有几种语言使用字符 æ 来表示字符 a 和 e(当这两个字符一起出现时)。Like 运算符认为该单个二合字母字符与这两个单独的字符是等效的。

当在系统区域设置中指定使用二合字母字符的语言时,在 pattern 或 string 中出现的单个二合字母字符都匹配其他字符串中等效的双字符序列。与此类似,括在方括号内的 pattern 中的单个二合字母字符(独立存在、在列表中或在某个范围内)匹配 string 中等效的双字符序列。

转载于:https://my.oschina.net/like100/blog/143412

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值