快速业务通道

vbs正则表达式代码

作者 佚名 来源 ASP编程 浏览 发布时间 2013-07-09
<%
FunctionRegExpTest(patrn,strng)
DimregEx,Match,Matches''建立变量。
SetregEx=NewRegExp''建立正则表达式。
regEx.Pattern=patrn''设置模式。
regEx.IgnoreCase=True''设置是否区分字符大小写。
regEx.Global=True''设置全局可用性。
SetMatches=regEx.Execute(strng)''执行搜索。
ForEachMatchinMatches''遍历匹配集合。
RetStr=RetStr&"Matchfoundatposition"
RetStr=RetStr&Match.FirstIndex&".MatchValueis''"
RetStr=RetStr&Match.Value&"''."&"<BR>"
Next
RegExpTest=RetStr
EndFunction

response.WriteRegExpTest("[ij]s.","IS1Js2IS3is4")
%>
在这个例子中,我们查找字符串中有无is或者js这两个词,忽略大小写。运行的结果如下:
Matchfoundatposition0.MatchValueis''IS1''.
Matchfoundatposition4.MatchValueis''Js2''.
Matchfoundatposition8.MatchValueis''IS3''.
Matchfoundatposition12.MatchValueis''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方法的用法。
<%
FunctionReplaceTest(patrn,replStr)
DimregEx,str1''建立变量。
str1="Thequickbrownfoxjumpedoverthelazydog."
SetregEx=NewRegExp''建立正则表达式。
regEx.Pattern=patrn''设置模式。
regEx.IgnoreCase=True''设置是否区分大小写。
ReplaceTest=regEx.Replace(str1,replStr)''作替换。
EndFunction

Response.WriteReplaceTest("fox","cat")&"<BR>"''将''fox''替换为''cat''。
Response.WriteReplaceTest("(S+)(s+)(S+)","$3$2$1")''交换词对.
%>
2、Test方法
对指定的字符串执行一个正则表达式搜索,并返回一个Boolean值指示是否找到匹配的模式。正则表达式搜索的实际模式是通过RegExp对象的Pattern属性来设置的。RegExp.Global属性对Test方法没有影响。
如果找到了匹配的模式,Test方法返回True;否则返回False。下面的代码说明了Test方法的用法。
<%
FunctionRegExpTest(patrn,strng)
DimregEx,retVal''建立变量。
SetregEx=NewRegExp''建立正则表达式。
regEx.Pattern=patrn''设置模式。
regEx.IgnoreCase=False''设置是否区分大小写。
retVal=regEx.Test(strng)''执行搜索测试。
IfretValThen
RegExpTest="找到一个或多个匹配。"
Else
RegExpTest="未找到匹配。"
EndIf
EndFunction

Response.WriteRegExpTest("is.","IS1is2IS3is4")
%>
3、Execute方法
对指定的字符串执行正则表达式搜索。正则表达式搜索的设计模式是通过RegExp对象的Pattern来设置的。
Execute方法返回一个Matches集合,其中包含了在string中找到的每一个匹配的Match对象。如果未找到匹配,Execute将返回空的Matches集合。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号