社区
VB基础类
帖子详情
字符串匹配的问题
kob
2005-09-16 08:24:51
比如匹配表达式为a_bc%d_,则abbcc1d1,aabc123d1都可以匹配的上
就像sql里面的like一样,
'_'代表 任何单个字符
'%'代表 包含零个或更多字符的任意字符串
有什么简单的方法吗?
...全文
590
6
打赏
收藏
字符串匹配的问题
比如匹配表达式为a_bc%d_,则abbcc1d1,aabc123d1都可以匹配的上 就像sql里面的like一样, '_'代表 任何单个字符 '%'代表 包含零个或更多字符的任意字符串 有什么简单的方法吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
province_
2005-09-17
打赏
举报
回复
难道是想自己写个LIKE算法吗?如果是开发任务,要用就用现成的;如果想练算法,那倒是不错的例子。
benara
2005-09-17
打赏
举报
回复
就用like
八哥
2005-09-17
打赏
举报
回复
like
yas
2005-09-17
打赏
举报
回复
晕,VB本来就有like运算符
northwolves
2005-09-16
打赏
举报
回复
MSDN:
Like 运算符
用来比较两个字符串。
语法
result = string Like pattern
Like 运算符的语法具有以下几个部分:
部分 描述
result 必需的;任何数值变量。
string 必需的;任何字符串表达式。
pattern 必需的;任何字符串表达式,遵循“说明”中的模式匹配约定。
说明
如果 string 与 pattern 匹配,则 result 为 True;如果不匹配,则 result 为 False。但是如果 string 或 pattern 中有一个为 Null,则 result 为 Null。
Like 运算符的特性随着 Option Compare 语句而不同。每个模块的缺省字符串比较方法是 Option Compare Binary。
在字符串比较中,Option Compare Binary 的结果是根据字符的内部二进制表示法导出的排序顺序得到的。在 Microsoft Windows 中,排序顺序由代码页决定。下例说明通常二进制的排序顺序:
A < B < E < Z < a < b < e < z < _ < _ < _ < _ < _ < ?/FONT>
在字符串比较中,Option Compare Text 的结果是字符串比较,它建立在不区分大小写的文本排序顺序基础上,而这一排序顺序是由系统的国别确定的。在对相同的字符使用 Option Compare Text 时会产生以下文本排序顺序:
(A=a) < (_=_) < (B=b) < (E=e) < (_=_) < (Z=z) < (_=_)
内建的模式匹配功能提供了多种工具来进行字符串比较。有了模式匹配功能就可以使用通配符、字符串列表或字符区间的任何组合来匹配字符串。下列表格指出 pattern 中允许的字符以及它们与什么进行匹配:
pattern 中的字符 符合 string 中的
? 任何单一字符。
* 零个或多个字符。
# 任何一个数字 (0–9)。
[charlist] charlist.中的任何单一字符。
[!charlist] 不在 charlist 中的任何单一字符。
在中括号 ([ ]) 中,可以用由一个或多个字符 (charlist) 组成的组与 string 中的任一字符进行匹配,这个组几乎包括任何一个字符代码以及数字。
注意 为了与左括号 ([)、问号 (?)、数字符号 (#) 和星号 (*) 等特殊字符进行匹配,可以将它们用方括号括起来。不能在一个组内使用右括号 (]) 与自身匹配,但在组外可以作为个别字符使用。
通过在范围的上、下限之间用连字符 (–),charlist 可以指定字符的范围。例如,如果 string 中相应字符的位置包括 A–Z 之间的任意大写字母,则 [A-Z] 得到一个匹配。不需要分界符,方括号内就可以包括多个范围。
指定范围的意义取决于运行时的有效字符排序(正如 Option Compare 和系统的国别设置所确定的,代码在运行之中)。使用 Option Compare Binary 示例可以看到,范围 [A–E] 与 A、B 和 E 相匹配。通过 Option Compare Text 可以看到,[A–E] 与 A, a, _, _, B, b, E, e 相匹配。此范围与 _ 或 _ 不匹配,因为按照排序顺序,重音字符在非重音字符之后。
下面列举的是模式匹配的其它重要规则:
charlist 开头的惊叹号 (!) 意味着,如果在 string 中找到任何不属于 charlist 的字符,则存在一个匹配。如果在方括号之外使用惊叹号,则惊叹号与自身匹配。
连字符 (–) 可以出现在 charlist 的开头(如果使用惊叹号,则在惊叹号之后),也可以出现在 charlist 的结尾与自身匹配。在任何其它地方,连字符用来识别字符的范围。
当指定了字符范围时,这些字符必须按照升序(从最小到最大)顺序来显示。[A-Z] 是有效模式,但 [Z-A] 不是。
字符序列 [] 被看作是长度为零的字符串 ("")。
某些语言的字母表中有一些特殊字符,它们表示两个分开的字符。例如,在一些语言中,当字符 "a" 与 "e" 同时出现时,用 "_" 来表示字符 "a" 与 "e"。Like 运算符可以辨认出单一的特殊字符和两个个别字符是否相等。
当一个语言使用了一个特殊字符,而且这个字符在系统地区设置中已被指定的时候,在 pattern 或 string 中出现的单一特殊字符将与其他字符串中等价的两个字符相匹配。与此相似,由方括号括起来的 pattern 中的单一特殊字符(字符本身在列表或范围内)将与 string 中等价的两个字符序列匹配。
YaDa
2005-09-16
打赏
举报
回复
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。
Python 47个字符串方法
# Python 47个字符串方法## 课程介绍同学们是否总是要搜资料、查官网后,才知道怎么操作字符串?如果是,来学学本课程吧,本课程以讲解官网文档的方式,讲解 Python 47个字符串方法,涉及替换、删除、连接、查找、...
信息学奥赛一本通 1355:
字符串匹配
问题
(strs)
ybt 1355:
字符串匹配
问题
(strs) 设数组pri,是个整数表示括号的优先级。优先级从高到低为:, 这里设,同类的左右括号的优先级数值是10倍关系,这样就可以用pri来判断两个括号是否配对。 遍历整个字符串结束遍历...
字符串匹配
问题
:输入一个字符串,计算其中包含的‘连续’给定的子字符串最长的个数.
字符串匹配
问题
:输入一个字符串,计算其中包含的连续给定的子字符串的个数。例如输入字符串“ EFABCABCABCDABCDD ” , 给定子字符串“ ABC” ,输出是 3 。
带通配符的
字符串匹配
问题
的动态规划算法
字符串匹配
问题
,给定一串字符串,按照指定规则对其进行匹配,并将匹配的结果保存至output数组中,多个匹配项用空格间隔,最后一个不需要空格。 要求: 1. 匹配规则中包含通配符?和*,其中?表示匹配任意一个字符,*...
算法之
字符串匹配
问题
(Java练习题)
字符串匹配
问题
【题目】 给定字符串str,其中绝对不含有字符'.'和'*'。再给定字符串exp, 其中可以含有'.'或'*','*'字符不能是exp的首字符,并且任意两个 '*'字符不相邻。exp中的'.'代表任何一个字符,exp中的'*'...
VB基础类
7,763
社区成员
197,609
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章