RegExp对象提供简单的正则表达式支持功能。

  RegExp对象的用法:
Function RegExpTest(patrn, strng)
Dim regEx, Match,
Matches ' 建立变量。
Set regEx = New RegExp ' 建立正则表达式。
regEx.Pattern = patrn '
设置模式。
regEx.IgnoreCase = True ' 设置是否区分字符大小写。
regEx.Global = True '
设置全局可用性。
Set Matches = regEx.Execute(strng) ' 执行搜索。
For Each Match in
Matches ' 遍历匹配集合。
RetStr = RetStr & "Match found at position "
RetStr
= RetStr & Match.FirstIndex & ". Match Value is '"
RetStr = RetStr
& Match.Value & "'." & vbCRLF
Next
RegExpTest = RetStr
End
Function

MsgBox(RegExpTest("is.", "IS1 is2 IS3 is4"))

  RegExp 对象的属性

  ◎ Global属性

  Global属性设置或返回一个 Boolean
值,该值指明在整个搜索字符串时模式是全部匹配还是只匹配第一个。
  语法
object.Global [= True | False
]
  object 参数总是 RegExp 对象。如果搜索应用于整个字符串,Global 属性的值为 True,否则其值为 False。默认的设置为
True。

  Global 属性的用法(改变赋予 Global 属性的值并观察其效果):
Function RegExpTest(patrn,
strng)
Dim regEx ' 建立变量。
Set regEx = New RegExp '
建立规范表达式。
regEx.Pattern = patrn ' 设置模式。
regEx.IgnoreCase = True '
设置是否区分字母的大小写。
regEx.Global = True ' 设置全程性质。
RegExpTest =
regEx.Execute(strng) ' 执行搜索。
End Function

MsgBox(RegExpTest("is.", "IS1 is2 IS3 is4"))

  ◎ IgnoreCase属性

  IgnoreCase属性设置或返回一个Boolean值,指明模式搜索是否区分大小写。
  语法
object.IgnoreCase [=
True | False ]
  object 参数总是一个 RegExp 对象。如果搜索是区分大小写的,则 IgnoreCase 属性为
False;否则为 True。缺省值为 True。

  IgnoreCase 属性的用法(改变赋予 IgnoreCase 属性的值以观察其效果):
Function RegExpTest(patrn,
strng)
Dim regEx ' 建立变量。
Set regEx = New RegExp '
建立正则表达式。
regEx.Pattern = patrn ' 设置模式。
regEx.IgnoreCase = True '
设置是否区分大小写。
RegExpTest = regEx.Execute(strng) ' 执行搜索。
End Function

MsgBox(RegExpTest("is.", "IS1 is2 IS3 is4"))

  ◎ Pattern属性

  Pattern属性设置或返回被搜索的正则表达式模式。
  语法
object.Pattern [=
"searchstring"]
Pattern 属性的语法包含以下几个部分:

  语法说明:
object 必需的。总是一个 RegExp 对象变量。
searchstring
可选的。被搜索的正则字符串表达式。它可能包含设置部分表格中的各种正则表达式字符。

  设置
  在书写正则表达式的模式时使用了特殊的字符和序列。下面描述了可以使用的字符和序列,并给出了实例。
 \
将下一个字符标记为特殊字符或字面值。例如"n"与字符"n"匹配。"\n"与换行符匹配。序列"\\"与"\"匹配对面,"\("与"("匹配。
 ^
匹配输入的开始位置。
 $ 匹配输入的结尾。
 * 匹配前一个字符零次或几次。例如,"zo*"可以匹配"z"、"zoo"。
 +
匹配前一个字符一次或多次。例如,"zo+"可以匹配"zoo",但不匹配"z"。
 ?
匹配前一个字符零次或一次。例如,"a?ve?"可以匹配"never"中的"ve"。
 . 匹配换行符以外的任何字符。
 (pattern)
与模式匹配并记住匹配。匹配的子字符串可以从作为结果的 Matches 集合中使用 Item [0]...[n]取得。如果要匹配括号字符(和 ),可使用"\("
或 "\)"。
 x|y 匹配 x 或 y。例如 "z|food" 可匹配 "z" 或 "food"。"(z|f)ood" 匹配 "zoo" 或
"food"。
 {n} n 为非负的整数。匹配恰好n次。例如,"o{2}" 不能与 "Bob 中的 "o"
匹配,但是可以与"foooood"中的前两个o匹配。
 {n,} n
为非负的整数。匹配至少n次。例如,"o{2,}"不匹配"Bob"中的"o",但是匹配"foooood"中所有的o。"o{1,}"等价于"o+"。"o{0,}"等价于"o*"。
 {n,m}
m 和 n 为非负的整数。匹配至少 n 次,至多 m 次。例如,"o{1,3}" 匹配
"fooooood"中前三个o。"o{0,1}"等价于"o?"。
 [xyz] 一个字符集。与括号中字符的其中之一匹配。例如,"[abc]"
匹配"plain"中的"a"。
 [^xyz] 一个否定的字符集。匹配不在此括号中的任何字符。例如,"[^abc]"
可以匹配"plain"中的"p".
 [a-z]
表示某个范围内的字符。与指定区间内的任何字符匹配。例如,"[a-z]"匹配"a"与"z"之间的任何一个小写字母字符。
 [^m-z]
否定的字符区间。与不在指定区间内的字符匹配。例如,"[m-z]"与不在"m"到"z"之间的任何字符匹配。
 \b
与单词的边界匹配,即单词与空格之间的位置。例如,"er\b" 与"never"中的"er"匹配,但是不匹配"verb"中的"er"。
 \B
与非单词边界匹配。"ea*r\B"与"never early"中的"ear"匹配。
 \d 与一个数字字符匹配。等价于[0-9]。
 \D
与非数字的字符匹配。等价于[^0-9]。
 \f 与分页符匹配。
 \n 与换行符字符匹配。
 \r 与回车字符匹配。
 \s
与任何白字符匹配,包括空格、制表符、分页符等。等价于"[ \f\n\r\t\v]"。
 \S 与任何非空白的字符匹配。等价于"[^
\f\n\r\t\v]"。
 \t 与制表符匹配。
 \v 与垂直制表符匹配。
 \w
与任何单词字符匹配,包括下划线。等价于"[A-Za-z0-9_]"。
 \W
与任何非单词字符匹配。等价于"[^A-Za-z0-9_]"。
 \num 匹配 num个,其中 num
为一个正整数。引用回到记住的匹配。例如,"(.)\1"匹配两个连续的相同的字符。
  \n 匹配 n,其中n 是一个八进制换码值。八进制换码值必须是 1,
2 或 3 个数字长。例如,"\11" 和 "\011" 都与一个制表符匹配。"\0011"等价于"\001" 与 "1"。八进制换码值不得超过
256。否则,只有前两个字符被视为表达式的一部分。允许在正则表达式中使用 ASCII码。
 \xn
匹配n,其中n是一个十六进制的换码值。十六进制换码值必须恰好为两个数字长。例如,"\x41"匹配"A"。"\x041"等价于"\x04" 和
"1"。允许在正则表达式中使用 ASCII 码。

  Pattern 属性的用法:
Function RegExpTest(patrn, strng)
Dim regEx '
建立变量。
Set regEx = New RegExp ' 建立正则表达式。
regEx.Pattern = patrn '
设置模式。
regEx.IgnoreCase = True ' 设置是否区分大小写。
RegExpTest =
regEx.Execute(strng) ' 执行搜索。
End Function

MsgBox(RegExpTest("is.", "IS1 is2 IS3 is4"))

  RegExp对象的方法

  ◎ Execute方法

  Execute方法对指定的字符串执行正则表达式搜索。
  语法
object.Execute(string)
  语法部分描述
object
必需的。总是一个 RegExp 对象的名称。
string 必需的。要在其上执行正则表达式的文本字符串。

  说明
  正则表达式搜索的设计模式是通过 RegExp 对象的 Pattern 来设置的。
  Execute 方法返回一个
Matches 集合,其中包含了在 string 中找到的每一个匹配的 Match 对象。如果未找到匹配,Execute 将返回空的 Matches
集合。

  Execute 方法的用法:
Function RegExpTest(patrn, strng)
Dim regEx '
建立变量。
Set regEx = New RegExp ' 建立正则表达式。
regEx.Pattern = patrn '
设置模式。
regEx.IgnoreCase = False ' 设置区分大小写。
regEx.Global = True '
搜索全部匹配。
RegExpTest = regEx.Execute(strng) ' 执行搜索。
End Function

MsgBox(RegExpTest("is.", "IS1 is2 IS3 is4"))

  ◎ Replace方法

  Replace方法替换在正则表达式查找中找到的文本。
  语法
object.Replace(string1,
string2)
  语法部分描述
object 必需的。总是一个 RegExp 对象的名称。
string1 必需的。string1
是将要进行文本替换的字符串。
string2 必需的。 string2 是替换文本字符串。

  说明
  被替换的文本的实际模式是通过 RegExp 对象的 Pattern 属性设置的。
  Replace 方法返回 string1
的副本,其中的 RegExp.Pattern 文本已经被替换为 string2。如果没有找到匹配的文本,将返回原来的 string1 的副本。

  Replace 方法的用法:
Function ReplaceTest(patrn, replStr)
Dim regEx, str1 '
建立变量。
str1 = "The quick brown fox jumped over the lazy dog."
Set regEx =
New RegExp ' 建立正则表达式。
regEx.Pattern = patrn ' 设置模式。
regEx.IgnoreCase =
True ' 设置是否区分大小写。
ReplaceTest = regEx.Replace(str1, replStr) ' 作替换。
End
Function

MsgBox(ReplaceTest("fox", "cat"))
' 将 'fox' 替换为 'cat'。

;另外,Replace 方法在模式中替换 subexpressions 。
下面对以前示例中函数的调用,替换了原字符串中的所有字对:
MsgBox(ReplaceText("(\S+)(\s+)(\S+)", "$3$2$1"))
' Swap pairs of words.

  ◎ Test方法

  Test方法对指定的字符串执行一个正则表达式搜索,并返回一个 Boolean
值指示是否找到匹配的模式。
  语法
object.Test(string)
  语法部分描述
object 必需的。总是一个
RegExp 对象的名称。
string 必需的。要执行正则表达式搜索的文本字符串。

说明
  正则表达式搜索的实际模式是通过RegExp对象的Pattern属性来设置的。RegExp.Global属性对Test方法没有影响。
  如果找到了匹配的模式,Test方法返回True;否则返回False。

  Test 方法的用法:
Function RegExpTest(patrn, strng)
Dim regEx, retVal '
建立变量。
Set regEx = New RegExp ' 建立正则表达式。
regEx.Pattern = patrn '
设置模式。
regEx.IgnoreCase = False ' 设置是否区分大小写。
retVal = regEx.Test(strng) '
执行搜索测试。
If retVal Then
RegExpTest = "找到一个或多个匹配。"
Else
RegExpTest =
"未找到匹配。"
End If
End Function

MsgBox(RegExpTest("is.", "IS1 is2 IS3 is4"))

VBScript基础:Match 对象

Match 对象提供了对正则表达式匹配的只读属性的访问。Match对象只能通过 RegExp 对象的 Execute 方法来创建,该方法实际上返回了
Match 对象的集合。所有的 Match 对象属性都是只读的。在执行正则表达式时,可能产生零个或多个 Match 对象。每个 Match
对象提供了被正则表达式搜索找到的字符串的访问、字符串的长度,以及找到匹配的索引位置等。

  Match 对象的用法:

Function RegExpTest(patrn, strng)
Dim regEx, Match, Matches ' 建立变量。
Set
regEx = New RegExp ' 建立正则表达式。
regEx.Pattern = patrn '
设置模式。
regEx.IgnoreCase = True ' 设置是否区分大小写。
regEx.Global = True '
设置全局替换。
Set Matches = regEx.Execute(strng) ' 执行搜索。
For Each Match in
Matches ' 遍历 Matches 集合。
RetStr = RetStr & "Match " & I & " found
at position "
RetStr = RetStr & Match.FirstIndex & ". Match Value is
"'
RetStr = RetStr & Match.Value & "'." &
vbCRLF
Next
RegExpTest = RetStr
End Function

MsgBox(RegExpTest("is.", "IS1 is2 IS3 is4"))

VB中的正则表达式的更多相关文章

  1. VB中 '&' 和 '+' 号的区别

    释义 &(Ampersand)是英语单字and之代表符号,亦可用作中文中的“和”.“与”之代表符号.这个符号源于拉丁文的et的连写. 可读做 ampersand,即 "and per ...

  2. PHP中有关正则表达式的函数集锦

    之前学正则表达式的目的是想从网上抓取点小说啊,文档啊,还有获取相应的视频连接然后批量下载.当时初学PHP根本不知道PHP有专门抓包的工具,就像Simple_html_dom.php(在我的其他博文中有 ...

  3. JavaScript中的正则表达式(终结篇)

    JavaScript中的正则表达式(终结篇) 在之前的几篇文章中,我们了解了正则表达式的基本语法,但那些语法不是针对于某一个特定语言的.这篇博文我们将通过下面几个部分来了解正则表达式在JavaScri ...

  4. Coursera-Getting and Cleaning Data-week4-R语言中的正则表达式以及文本处理

    博客总目录:http://www.cnblogs.com/weibaar/p/4507801.html Thursday, January 29, 2015 补上第四周笔记,以及本次课程总结. 第四周 ...

  5. 9.JAVA中的正则表达式

    一.JAVA中的正则表达式 1.概念:以某种特定的方式描述字符串 1.Java中正则表达式的规则 ?          #{0,1}-?有一个-或者没有 \\           #表示一个" ...

  6. VB 中 NumericUpDown 控件 如何为手动输入设定触发事件

    Private Sub numDuration_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) ...

  7. VB 中Sub和Function的区别

    Sub可以理解为执行一个过车,一个操作. Function在执行完过后,还要返回一个结果. Sub:过程:Function:函数,可以带返回值. 语法: Sub SubName(参数1,参数2,... ...

  8. Python::re 模块 -- 在Python中使用正则表达式

    前言 这篇文章,并不是对正则表达式的介绍,而是对Python中如何结合re模块使用正则表达式的介绍.文章的侧重点是如何使用re模块在Python语言中使用正则表达式,对于Python表达式的语法和详细 ...

  9. VB中的API详解

    一.API是什么? 这个我本来不想说的,不过也许你知道其它人不知道,这里为了照顾一下新手,不得不说些废话,请大家谅解. Win32 API即为Microsoft 32位平台的应用程序编程接口(Appl ...

随机推荐

  1. Leetcode 16

    //一次AC 有点爽的class Solution { public: int threeSumClosest(vector<int>& nums, int target) { ; ...

  2. rabbitmq 对多服务器p2p模式配置的一个测试

    一直对rabbitmq p2p 模式的多服务器下做相同配置的 各个服务器数据接受情况比较好奇 今天有空测试了下 xml 文件 <?xml version="1.0" enco ...

  3. 99%的人都理解错了HTTP中GET与POST的区别(转自知乎)

    作者:Larry链接:https://zhuanlan.zhihu.com/p/22536382来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. GET和POST是HTT ...

  4. 知名第三方编译版tete009 Firefox 24.0

    Firefox除了官方版本上还有许多由爱好者自己编译修改的第三方版本. 其中 tete009 是十分流行的一个版本,目前tete009 Firefox 24.0 版本发布. tete009版Firef ...

  5. pycharm 设置py文件的默认模版头部信息

    pycharm 设置py文件的默认模版头部信息,打开设置settings 进入File->settings->Editor->File and Code Templates-> ...

  6. MQTT再学习 -- 搭建MQTT服务器及测试

    最近在搞 PM2.5 采集,需要用到 MQTT 传输协议.协议部分看了几天的,讲的七七八八.本身在 intel 上有 写好的MQTT 的源码,现在的工作其实也就是移植到单片机上或者DM368板卡上.不 ...

  7. Kafka术语解释

    前一篇文章介绍了如何使用kafka收发消息,但是对于kafka的核心概念并没有详细介绍,这里将会对包括kafka基本架构以及消费者.生产者API涉及的术语进行说明.了解这些术语有助于更深入理解kafk ...

  8. /dev/mem直接操作硬件寄存器

    /******************************************************************************* * /dev/mem直接操作硬件寄存器 ...

  9. Mysql的日期转换成星期[某天对应周几]

    |—— 应用中会有各种不同的需求,要灵活应对:比如拿到某一日期要知道是周几 |——DAYOFWEEK(date) [返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六).这些索引值对 ...

  10. Jenkins搭建windows service自动编译发布环境

    类库项目(Task)部署 前面搭建了Web站点的环境,类库项目发布不同于站点项目,它只需要将MSBuild编译出来的dll复制到目标服务器上即可,而不需要通过Web Deploy,下面来说一下如何发布 ...