vbs正则表达式代码

<%
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 集合。

(0)

相关推荐

  • vbs正则表达式代码

    <% Function RegExpTest(patrn, strng)     Dim regEx, Match, Matches '建立变量.     Set regEx = New RegExp '建立正则表达式.          regEx.Pattern = patrn'设置模式.          regEx.IgnoreCase = True '设置是否区分字符大小写.          regEx.Global = True '设置全局可用性.     Set Matches 

  • VBS正则表达式对象的MultiLine属性

    在 Introduction to Regular Expressions(正则表达式简介) 一章中的 Backreferences(向后引用)一节: 复制代码 代码如下: '使用上面所示的正则表达式,下面的 JScript 代码可以使用子匹配信息,在一个文字字符串中将连续出现两次的相同单词替换为一个相同的单词: var ss = "Is is the cost of of gasoline going up up?.\n"; var re = /\b([a-z]+) \1\b/gim

  • 雷客图 站长安全助手 vbs版代码(asp 木马查找)

    均在命令行下使用 AntiIframe.vbs #该脚本是批量挂马程序的逆向,用于批量清除被添加到文件中的恶意代码.记事本打开文件可以修改Pattern参数指定要处理的文件名,文件名之间用|隔开(也支持vbs正则表达式).由于要修改文件,请谨慎的使用(最好先备份文件) #用法: CScript AntiIframe.vbs [处理的路径] [包含清除内容的文件] #例子: CScript AntiIframe.vbs d:\Web d:\lake2.txt -------------------

  • vbs整人代码大集合 多年的代码收集

    一.你打开好友的聊天对话框,然后记下在你QQ里好友的昵称,把下面代码里的xx替换一下,就可以自定义发送QQ信息到好友的次数(代码里的数字10改一下即可). xx.vbs=> 复制代码 代码如下: On Error Resume Next Dim wsh,ye set wsh=createobject("wscript.shell") for i=1 to 10 wscript.sleep 700 wsh.AppActivate("与 xx 聊天中") wsh.

  • 抖音vbs表白代码大全 抖音vbscript表白代码使用方法

    当然斗音很热,这篇文章也有蹭热度的嫌疑. 我们以前就收录了类似这样的属于恶作剧的代码,其实就是判读如果不是你想要的结果就是死循环. 抖音vbs表白代码制作教程 步骤一: 在电脑上新建一个txt文件. 步骤二: 打开txt文件,复制以下代码粘贴进去(可以修改中文部分,其它代码不要动!).保存并关闭txt文件. Set Seven = WScript.CreateObject("WScript.Shell") strDesktop = Seven.SpecialFolders("

  • 抖音很火的vbs表白代码(简单实用!)

    好玩的循环表白代码 1,右键->新建文本文件 2,右键->编辑 3,粘贴下面代码 MsgBox " 十年相遇" MsgBox " 百年回眸" MsgBox " 千年同船渡" MsgBox " 我愿以万年的等待" MsgBox " 百世的轮回" MsgBox " 换你今朝一世情缘" MsgBox " 可否" dim a(5) a(0)=" 天大,地

  • 写个设置命令的VBS脚本代码

    复制代码 代码如下: '作者:刘先勇 (Eric Liu) '将以下代码复制并保存为"系统命令.VBS",并运行安装. '安装成功后,可通过在程序.文件或文件夹上点右键->发送到->系统命令来设置一个命令,然后在运行中就可以输入该命令打开文件了. '脚本运行一次后在右键菜单中增加从这里运行CMD的快捷方式,还增加查找目标文件快捷方式 'On Error Resume Next If (lcase(right(wscript.fullname,11))<>&quo

  • 一些很恶作剧的vbs程序代码

    操作方法:把代码保存为*.VBS运行即可 经本人亲自测试 不会出大问题的,一般都是利用无限循环,不是死循环,可以通过任务管理器中结束WSCRIPT或cscript进程即可. 复制代码 代码如下: do msgbox "hi" loop 无限制的用英文报数 复制代码 代码如下: Set s = CreateObject("sapi.spvoice") i=0 do s.speak i i=i+1 loop 复制代码 代码如下: if MsgBox("对不起,

  • 一个perl扩展正则表达式代码分析

    复制代码 代码如下: my $ip = "192.168.0.1|192.168.0.2|192.168.0.1";if ( $ip =~ /    ^    (?:        ((?:\d{1,3}\.){3}\d{1,3})        (?=            (?:                \|(?!\1)(?1)            )*            \z        )        \|    )*    (?1)    $    /x )

  • XorEncode的vbs实现代码

    复制代码 代码如下: If Not WScript.Arguments.Count=1 Then WScript.Echo "请将要转换的vbs文件托拽到我身上!":WScript.Quit Set fso=CreateObject("Scripting.FileSystemObject") Set self=fso.OpenTextFile(WScript.ScriptFullName) Set vbs=fso.CreateTextFile(Left(WScrip

随机推荐