这段时间在移植项目的过程中,起初我想判断一个字符串中是否存在某字符(串),直接的使用方法是用instr(start,string1,string2,VB compare),但经过分析在VB中可以只用一下方法来判断!

1.常用的 InStr 方法
Function InStr([Start], [String1], [String2], [Compare As VbCompareMethod = vbBinaryCompare])
VBA.Strings 的成员
返回在另一字符串中第一次出现某一字符串的位置

判断string1中从start开始的位置第一次出现string2的位置

2.使用正则表达式
在VB中需要引入Library VBScript_RegExp_55
位置在C: \ WINDOWS \ System32 \ vbscript.dll \ 3
Microsoft VBScript Regular Expressions 5.5
当然,你可以直接在项目中引用,使用方法如下:

Dim ResultString As String
Dim myRegExp As RegExp
Dim resultCollection As MatchCollection
Const pattern As String = "^\s*Dim\s+([\w|,|\s]+)(?:\s+As\s+Recordset)"
Public Function executes(SubjectString As String, result As MatchCollection)
Set myRegExp = New RegExp
myRegExp.MultiLine = True
myRegExp.Global = True
myRegExp.pattern = pattern
Set result = myRegExp.Execute(Trim$(SubjectString))
End Function

3.第三种是比较特别的方法,是采用 if String like [parttern],即string需要满足parttern中的模式,才会返回true,其具体定义如下:
语法
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 中等价的两个字符序列匹配。
示例:

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。

以上就是常用的匹配方法,大家根据需要采用不同的方法进行匹配,但我推荐使用if 。。。like 。。。的方式,这种方法既准确有快速!

摘自:网络整理

相关文章参考:

※VB SendMessage向其他程序窗口发送字符串消息实例

※VB 二进制数组与十六进制字符串相互转换

※VB 汉字字符串转换成拼音

※VB查找替代字符串的函数

※VB中字符串匹配的多种方式

vb 字符串转为数字和判断字符串是否是数字字符串【转】

※查找替代字符串的函数

※VB中使用MD5算法

※VB的MD5加密模块

※加密算法-MD5算法

※VB 字符串MD5加密函数

VB部分相关文章推荐:


☆VB6 中善用ByRef 提升速度

☆[vb] Set 语句

☆VB_Format自定义格式

☆用VB如读取内存地址

☆vb FindwindowEx的用法实例

☆进制转化进10进制数

☆收藏:如何获取当前已经打开的IE对象(VB6代码)

☆DXInput中键码的转换(VB6.0代码)

☆如何在VB6.0里动态使用具有事件的对象

☆[vb]格式输出Format函数

☆读取和写入Windows的INI文件

☆简述UTF-8编码原理及其文本文件的读写技术【转】

☆VB中的文件操作

☆VB中的文件操作文档

☆vb 中拷贝文件

☆VB反跟踪技术点滴

☆VB共享软件防破解设计技术初探(二)

☆VB共享软件防破解设计技术初探(三)

☆VB共享软件防破解设计技术初探(一)

☆RTF文件格式【转】

☆VB压缩技术

☆[vb]FSO对象模型在VB中的应用

☆VB 窗体实现文件拖拽获取路径方法

☆VB:注册表的读写

☆vb中空操作(等待)的指令、延时方法

☆VB让控件可以当标题栏拖动

☆FSO对象新建、打开、保存文件

☆获取网关IP和MAC 的VB源码

☆VB文件关联

☆vb获得本地和远程的MAC地址(网卡地址)

☆VB中ShellExeCute的应用

☆VB打开网址方法大全

☆vb简单控制音量大小及静音的方法

☆拖动无边框窗体(VB6代码)

☆VB使用FileSystemObject对象写文件

☆VB 从注册表中删除项及其某个值

☆vb 字符串转为数字和判断字符串是否是数字字符串【转】

☆vb按热键启动应用程序

☆VB的坐标系统综述

☆VB利用API函数来处理文件

☆关于VB中Shell及ShellExecute的总结与记录

☆[vb]On Error GoTo 0和On Error resume区别

☆[vb]On Error 语句

☆记录一下:在菜单上添加自绘图形的例子(VB6代码)

☆vb中findwindow的疑惑

☆[vb]FindWindow使用方法

☆常用文件类[转,无法运行通,待调试]

☆[vb]url utf-8编码

☆VB中的Unicode 和Ansi 格式

☆VB中的format格式化函数

☆VB中字符串匹配的多种方式

☆VB抓图

☆谈vb目录文件操作的三种方法-2

☆谈vb目录文件操作的三种方法-1

☆vb使用open方法读写文件

☆VB的MD5加密模块

☆VB 超简单的屏幕截图代码

☆vb以类名或窗口标题查找句柄并关闭

☆VB将配置保存到EXE本身(生成EXE木马程序)

☆VB 调用腾讯截图控件CameraDLL.dll

☆在VB6.0中怎么实现escape和unescape

☆vb求任意两线交点

☆VB中调用Windows API的注意事项[VB知识库]

☆VB 一个获得自己外网IP 地址的程序代码

☆VB程序中实现IP地址子网掩码网关DNS的更改[转]

☆在VB 中应用FSO 对象模型介绍(摘自网络)

☆[转] Vb中FSO 对象的介绍

☆VB 画坐标轴

☆VB 二进制文件的操作

☆[VB]BMP转JPG

☆VB中KeyCode常数用法

☆vb实时曲线的绘制和保存


更多精彩>>>

VB中字符串匹配的多种方式相关推荐

  1. Java中测试异常的多种方式

    Java中测试异常的多种方式 参考文章: (1)Java中测试异常的多种方式 (2)https://www.cnblogs.com/huang0925/p/3663074.html 备忘一下.

  2. kmp算法详解php,php中字符串匹配KMP算法实现例子

    KMP算法是一个比较高级的算法了,加了改进了,下面我们来在php中实现KMP算法,希望例子对各位同学会带来帮助哦. kmp算法是一种改进的字符串匹配算法,由D.E.Knuth与V.R.Pratt和J. ...

  3. matlab 字符串 匹配,matlab中字符串匹配函数

    MATLAB字符串匹配函数中,应用较多的有:findstr.strfind.strmatch.strcmp.strmcmp.这里我们大致列举这些函数的区别与联系 在Matlab中,这几个函数区分如下: ...

  4. 函数:MySQL中字符串匹配函数LOCATE和POSITION使用方法

    1. 用法一 LOCATE(substr,str) POSITION(substr IN str) 函数返回子串substr在字符串str中第一次出现的位置.如果子串substr在str中不存在,返回 ...

  5. VB中使用MD5算法

    调用方法: Private Sub Form_Load()     Debug.Print Mymd5.MD5("aa1234")     Debug.Print Mymd5.MD ...

  6. vb中findwindow的疑惑

    目的是学习使用findwindow的方法  |问题是程序运行得不到正确答案 步骤是 : 'Module Module1 //模块中声明findwindow Declare Function FindW ...

  7. VB中的format格式化函数

    VB Format函数 Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强制返回为文本 - - - - - - - - - - - - - - - ...

  8. 字符串匹配 python

    字符串匹配是计算机科学中一个重要的问题,也是实际应用中非常常见的问题.在Python中,字符串匹配可以通过正则表达式.字符串方法等方式来实现.本文将介绍Python中字符串匹配的相关知识. 正则表达式 ...

  9. 编写一个方法参数接收一个字符串,返回一个Date对象(在多种日期格式中找到与字符串匹配的那一个)用到解析异常ParseException

    题目:编写一个方法参数接收一个字符串,返回一个Date对象(在多种日期格式中找到与字符串匹配的那一个)用到解析异常ParseException 具体代码如下: import java.text.Par ...

最新文章

  1. Struts2 分割字符串标签s:generator
  2. android 设置窗口透明效果,android - 如何将对话框窗口背景设置为透明,而不影响其边距...
  3. @EnableAspectAutoJAutoProxy_exposeProxy属性
  4. 十、JavaScript中的正则表达式(六)
  5. 如何知道一个域名是否存在_域名检测API实现查看一个域名在微信中是否被封
  6. php无法创建cookie,php-curl cookie无法成功创建
  7. 纸质书,电子书,你会选择通过哪一种途径学习?
  8. php不能tmp,PHP无法找到tmp目录
  9. 开课吧:Webpack的构建流程是什么?
  10. 计算机常见错误代码,电脑常见错误蓝屏代码汇总及解决方法
  11. 定了,6大领域93个开源任务,阿里开源导师带你参与中科院开源之夏2022
  12. 工作笔记-thingworx连接mongdb
  13. pyscripter支持python什么版本_PyScripter下载|PyScripter(Python集成开发环境) v2.6.0官方版 64位/32位 - 121下载站...
  14. 百趣代谢组学文献分享:间歇性禁食调节糖尿病脑损伤多组学研究
  15. 【数据挖掘导论】对于决策树要掌握的几个问题
  16. EM算法 估计混合高斯模型参数 Python实现
  17. 美国心理求助电话暴涨10倍,斯坦福AI聊天机器人抚慰受伤心灵
  18. 找回生命本源的力量,走上生命觉醒的旅程
  19. 关于万能遥控器 这几个问题你必须知道
  20. HOG_SVM_行人检测数据集合_INRIA数据集

热门文章

  1. 那位 13 岁就当上老板的开发者是如何炼成的?
  2. 人工智能翻译之间的对决:谷歌为什么败给了有道?
  3. 杠上谷歌,微软利用人工智能加码必应搜索的市场竞争力
  4. php 可选表格,PHP_表格标记,  ■ 表格标记 TABLE - phpStudy
  5. matlab检测串口数据帧头,用matlab从串口读入数据产生图像进行分析遇到的问题,求大虾帮助!...
  6. 异地多活设计辣么难?其实是你想多了!
  7. 两栏布局的5中实现方式
  8. java微调器_java-更改微调器标题栏样式
  9. mysql insert锁 innodb_mysql – 处理ON INSERT触发器时如何锁定innodb表?
  10. java 短链接url_Java 网址短链接服务原理及解决方案