vb正则表达式
http://blog.csdn.net/vbman2003/article/details/1827135
引用了Microsoft VBScript Regular Expressions 5.5 后就可以声明正则相关对象了。主要有三个对象:RegExp、MatchCollection、Match。
1. RegExp 这是VB使用正则表达式匹配模式的主要对象了。其提供的属性用于设置那些用来比较的传递给 RegExp 实例的字符串的模式。 其提供的方法以确定字符串是否与正则表达式的特定模式相匹配。
属性:
Pattern:一个字符串,用来定义正则表达式。
IgnoreCase:一个布尔值属性,指示是否必须对一个字符串中的所有可能的匹配进行正则表达式测试。这是MS的解释,有点费解,实际使用中的实例是,如果True,则忽略英文字母大小的匹配,False对大小写进行匹配。
Global:设置一个布尔值或返回一个布尔值,该布尔值指示一个模式是必须匹配整个搜索字符串中的所有搜索项还是只匹配第一个搜索项。
MultiLine:这个MS没有介绍。查了一下资料,设置一个布尔值或返回一个布尔值,是否在串的多行中搜索。如果允许匹配多行文本,则multiline为true,如果搜索必须在换行时停止,则为false 。方法:
Execute:返回一个 MatchCollection 对象,该对象包含每个成功匹配的 Match 对象。
Replace:MS没有介绍,这是返回一个将匹配字符替换为指定字符的字符串。
Test:返回一个布尔值,该值指示正则表达式是否与字符串成功匹配。
2. MatchCollection 是集合对象,包含有关匹配字符串的信息,该对象包含每个成功匹配的 Match 对象。
属性:
Count:匹配对象的总数。
Item:匹配对象的索引。
3. Match 是成功匹配的对象。
属性:
FirstIndex:匹配对象所匹配字符串的起始位置。
Length:匹配对象所匹配字符串的字符长度。
SubMatches:匹配对象所匹配结果的子项。
Value:匹配对象所匹配的值。
Option Explicit '引用Microsoft VBScript Regular Expressions 5.5 Function RegExpMatch(strPattern As String, strString As String, Optional strReplace As String = "") As String Dim objRegExp As RegExp Dim objMatch As Match Dim colMatches As MatchCollection Dim i% Set objRegExp = New RegExp objRegExp.Pattern = strPattern objRegExp.IgnoreCase = True '大小写敏感 objRegExp.Global = True '全局匹配(多次匹配) ''''1、测试''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' If (objRegExp.Test(strString) = True) Then '''''2、匹配''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Set colMatches = objRegExp.Execute(strString) Debug.Print "共几个匹配:", colMatches.Count For Each objMatch In colMatches '获得匹配结果集 Debug.Print "", "匹配位置: " & objMatch.FirstIndex Debug.Print "", "匹配的值: " & objMatch.Value Debug.Print "", "子匹配:" & objMatch.SubMatches.Count If objMatch.SubMatches.Count > 1 Then For i = 0 To objMatch.SubMatches.Count - 1 Debug.Print "", "", objMatch.SubMatches(i) Next End If Next '''''3、替换''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' RegExpMatch = objRegExp.Replace(strString, strReplace) Debug.Print RegExpMatch Else Debug.Print "String Matching Failed" End If End Function Private Sub Form_Load() Debug.Print RegExpMatch("(\w+)@(\w+).(\w+)", "xx@xx.net我的E-mail: xx@xx.com 。欢迎致电 xx@xx.net !", "<文明用语>") End Sub
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现