正则表达式在VBScript中的应用

转载 2011年01月12日 22:33:00

===============================正则表达式在VBScript中的应用 ==========================

VBScript使用RegExp对象、Matches集合以及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'遍历匹配集合。

             RetStr = RetStr & "Match found at position "

             RetStr = RetStr & Match.FirstIndex & ". Match Value is '"

             RetStr = RetStr & Match.Value & "'." & "<BR>"

    Next

         RegExpTest = RetStr

End Function

response.Write RegExpTest("[ij]s.", "IS1 Js2 IS3 is4")

%>

在这个例子中,我们查找字符串中有无is或者js这两个词,忽略大小写。运行的结果如下: 

Match found at position 0. Match Value is 'IS1'. 

Match found at position 4. Match Value is 'Js2'. 

Match found at position 8. Match Value is 'IS3'. 

Match found at position 12. Match Value is 'is4'. 

下面我们就介绍这三个对象和集合。 

1、RegExp对象是最重要的一个对象,它有几个属性,其中: 

○Global 属性,设置或返回一个 Boolean 值,该值指明在整个搜索字符串时模式是全部匹配还是只匹配第一个。如果搜索应用于整个字符串,Global 属性的值为 True,否则其值为 False。默认的设置为 False。 

○IgnoreCase 属性,设置或返回一个Boolean值,指明模式搜索是否区分大小写。如果搜索是区分大小写的,则 IgnoreCase 属性为 False;否则为 True。缺省值为 False。 

○Pattern 属性,设置或返回被搜索的正则表达式模式。必选项。总是一个 RegExp 对象变量。 

2、Match 对象 

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

○FirstIndex 属性,返回在搜索字符串中匹配的位置。FirstIndex 属性使用从零起算的偏移量,该偏移量是相对于搜索字符串的起始位置而言的。换言之,字符串中的第一个字符被标识为字符 0 

○Length 属性,返回在字符串搜索中找到的匹配的长度。 

○Value 属性,返回在一个搜索字符串中找到的匹配的值或文本。 

3、Matches 集合 

正则表达式 Match 对象的集合。Matches 集合中包含若干独立的 Match 对象,只能使用 RegExp 对象的 Execute 方法来创建之。与独立的 Match 对象属性相同,Matches `集合的一个属性是只读的。在执行正则表达式时,可能产生零个或多个 Match 对象。每个 Match 对象都提供了与正则表达式匹配的字符串的访问入口、字符串的长度,以及标识匹配位置的索引。 

学习了这三个对象和集合,如何应用于字符串的判断和替换呢?regExp对象的三个方法正好解决了这个问题,它们是Replace方法、Test方法和Execute方法。 

1、Replace 方法 

替换在正则表达式查找中找到的文本。我们还是先看个例子:下面的例子说明了 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

Response.Write ReplaceTest("fox", "cat") & "<BR>" ' 将 'fox' 替换为 'cat'。

Response.Write ReplaceTest("(S+)(s+)(S+)", "$3$2$1") ' 交换词对.

%>

2、Test 方法 

对指定的字符串执行一个正则表达式搜索,并返回一个 Boolean 值指示是否找到匹配的模式。正则表达式搜索的实际模式是通过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

Response.Write RegExpTest("is.", "IS1 is2 IS3 is4")

%>

3、Execute 方法 

对指定的字符串执行正则表达式搜索。正则表达式搜索的设计模式是通过 RegExp 对象的 Pattern 来设置的。 

Execute 方法返回一个 Matches 集合,其中包含了在 string 中找到的每一个匹配的 Match 对象。如果未找到匹配,Execute 将返回空的 Matches 集合。

VBscript中的正则表达式

VBscript中的正则表达式 在VBscript中,正则表达式对象就是RegExp对象。RegExp对象有3个属性: Pattern 属性,设置或返回被搜索的正则表达式模式。 Global ...
  • hello_yang213
  • hello_yang213
  • 2013年01月31日 14:04
  • 692

VBScript的读写文件操作

第一步:OpenTextFile() 或者OpenAsTextStream() 第二步:Read 方法 或者ReadAll 方法 或者ReadLine 方法 Write 方法 W...
  • u013569416
  • u013569416
  • 2014年11月23日 17:18
  • 1618

VBScript中SendKeys与项目结合的妙用

VBScript中的SendKeys命令模拟键盘操作,将一个或多个按键指令发送到指定Windows窗口来控制应用程序运行,其使用格式为:object.SendKeys string。其中,“objec...
  • WZ18810463869
  • WZ18810463869
  • 2016年02月29日 21:09
  • 484

VBScript例子程序

VBS基本语法介绍W3CSchool工作中遇到的问题,项目组长给了一个Excel,让分析其中包含的字符含义,由于每页条数太多,导致看不出来要分析的字符在一长串字符中的位置。于是想把其中要注意的字符标注...
  • slaory
  • slaory
  • 2015年07月08日 20:54
  • 156

VBscript和javascript区别以及在哪里该用谁?

在很多论坛中看到关于VBscript和javascript到底应该使用哪个,哪个比较好的问题?  今天我来谈谈我的看法:  服务器端:  大家知道ASP支持这两中脚本语言,也就是在服...
  • Chair_
  • Chair_
  • 2014年10月31日 15:30
  • 1408

vbscript 字符串连接和数字转化为字符串

1、字符串连接用& 2、数字转化为字符串使用cstr       如:cstr(456)将输出字符串"456" VBscript中的字符串函数 在VBscript中,系统提供了大量的字符串函数来...
  • huyoufu200920201078
  • huyoufu200920201078
  • 2015年05月18日 21:57
  • 1694

用VBSCRIPT自动输入登录信息

几日前,朋友问我能不能帮他做一个能自动输入登录信息功能的程序。了解到,他的那个程序是运行在一款叫做“夜神安卓模拟器”(OUT了,第一次知道还有这种神器)环境下的360股票APP。对于这款模拟器我不甚了...
  • cg_i
  • cg_i
  • 2016年08月19日 22:07
  • 1487

VBScript主要的对象

VBScript作为脚本语言不仅能够编写简单的脚本,而且还能够创建及使用对象编写复杂的脚本,如Class对象,数据字典,操作文件夹及文件,错误处理,正则表达式等等。 1. Class对象 2....
  • slforeverlove
  • slforeverlove
  • 2015年07月25日 17:47
  • 564

VBScript-----妙用SendKeys简化重复操作

妙用SendKeys简化重复操作 每次开机的时候,你想自动登陆你的QQ或者博客吗?巧妙使用VBS中的SendKeys命令(这个命令的作用就是模拟键盘操作,将一个或多个按键指令发送到指定Windows...
  • slforeverlove
  • slforeverlove
  • 2015年07月28日 13:41
  • 759

正则表达式的简单语法及常用正则表达式 举例使用jquery获取url指定参数

基本符号: ^ 表示匹配字符串的开始位置 (例外 用在中括号中[ ] 时,可以理解为取反,表示不匹配括号中字符串) $ 表示匹配字符串的结束位置 * 表示匹配 零次到多次 + 表示...
  • lovoo
  • lovoo
  • 2016年10月17日 14:22
  • 842
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:正则表达式在VBScript中的应用
举报原因:
原因补充:

(最多只允许输入30个字)