`
zendj
  • 浏览: 121928 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

正则表达式在VBScript中的应用

阅读更多
===============================正则表达式在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 集合。
===============================正则表达式在JavaScript中的应用 ==========================

1、replace
replace在一个字符串中通过正则表达式查找替换相应的内容。replace并不改变原来的字符串,只是重新生成了一个新的字符串。如果需要执行全局查找或忽略大小写,那么在正则表达式的最后添加g和i。
例:
<SCRIPT>
re = /apples/gi;
str = "Apples are round, and apples are juicy.";
newstr=str.replace(re, "oranges");
document.write(newstr)
</SCRIPT>
结果是:"oranges are round, and oranges are juicy."
例:
<SCRIPT>
str = "Twas the night before Xmas...";
newstr=str.replace(/xmas/i, "Christmas");
document.write(newstr)
</SCRIPT>
结果是:"Twas the night before Christmas..."
例:
<SCRIPT>
re = /(\w+)\s(\w+)/;str = "John Smith";
newstr = str.replace(re, "$2, $1");
document.write(newstr)
</SCRIPT>
结果是:"Smith, John".
2、search 
search通过正则表达式查找相应的字符串,只是判断有无匹配的字符串。如果查找成功,search返回匹配串的位置,否则返回-1。
 search(regexp)
<SCRIPT>
function testinput(re, str){
if (str.search(re) != -1)
midstring = " contains ";
else
midstring = " does not contain ";
document.write (str + midstring + re.source);
}
testinput(/^[1-9]/i,"123")
</SCRIPT>
3、match
match方法执行全局查找,查找结果存放在一个数组里。
例一:
<SCRIPT>
str = "For more information, see Chapter 3.4.5.1";
re = /(chapter \d+(\.\d)*)/i;
found = str.match(re);
document.write(found);
</SCRIPT>
显示结果:Chapter 3.4.5.1,Chapter 3.4.5.1,.1
例二:
<SCRIPT>
str = "abcDdcba";
newArray = str.match(/d/gi);
document.write(newArray);
</SCRIPT>
显示结果D, d.
分享到:
评论

相关推荐

    正则表达式入门与提高---整理版_VBa_正则式_

    在VBA(Visual Basic for Applications)环境中,正则表达式可以极大地增强你在Excel、Word等Office应用中的数据处理能力。这篇整理版的文章将帮助初学者快速入门,并提升对正则表达式的理解。 首先,我们要了解...

    wps正则表达式 以及 wps通过正则表达式验证手机号码

    这段代码创建了一个VBScript正则表达式对象,并应用了给定的模式,然后使用`Test`方法检查输入的文本是否符合模式。如果符合,函数返回True;否则,返回False。 现在,我们可以在WPS Excel的单元格中使用这个`REGEX...

    正则表达式的应用

    正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和分析字符串。它通过一套预定义的规则(模式)来识别字符串中的特定序列...在实际应用中,需要根据具体需求来构建和调整正则表达式,以实现最佳的匹配效果。

    正则表达式教程合集(各种语言的,超全)

    在JavaScript中,正则表达式广泛应用于字符串操作,如`match()`、`search()`、`replace()`和`split()`方法。JavaScript的正则表达式有两种创建方式:字面量(/pattern/flags)和构造函数(new RegExp('pattern', '...

    VB正则表达式简介

    VB正则表达式是指在Visual Basic语言中应用的正则表达式技术。正则表达式是用来描述一个字符串模式的表达式,可以用来测试字符串是否与某个模式匹配,替换文本,根据模式匹配从字符串中提取一个子字符串等。 正则...

    正则表达式--递归匹配与非贪婪匹配

    例如,在`&lt;script language='vbscript'&gt;&lt;/script&gt;`中,使用非贪婪匹配的正则表达式可以确保正确提取出`vbscript`作为`language`属性的值。 ### 结论 递归匹配和非贪婪匹配都是正则表达式中非常重要的特性。递归...

    正则表达式II 正则表达式

    在本章节中,我们将深入探讨正则表达式的一些高级用法及其在不同编程环境中的应用。 #### 二、正则表达式的基本语法与符号 正则表达式由一系列字符和特殊符号组成,这些符号赋予了正则表达式强大的匹配能力。下面...

    正则表达式.doc

    正则表达式并非新概念,其起源可追溯到20世纪早期对神经网络的研究,由数学家Stephen Kleene提出,并在Ken Thompson的Unix系统中得到应用,特别是在qed编辑器中。 在日常使用中,正则表达式提供了比简单的通配符...

    正则表达式在SQL Server 2000中的实现与应用.pdf

    6. **正则表达式在实际应用中的例子**: - 验证电子邮件地址:通过正则表达式可以有效地验证电子邮件地址的格式是否正确,例如,`^[\w.-]+@[\w-]+(\.[\w-]+)*$`。 - 提取URL:在文本中查找并提取所有的URL。 - ...

    vb+word正则表达式

    在VB(Visual Basic)环境中结合Word应用程序,正则表达式可以帮助开发者实现更复杂的文本操作功能,比如文档清理、数据提取、格式校验等。下面将详细介绍VB如何使用正则表达式,并结合Word应用进行实际操作。 首先...

    正则表达式测试工具(src)

    正则表达式是一种强大的文本处理工具,用于在字符串中匹配、查找、替换或者提取符合特定模式的文本。在VB6(Visual Basic 6)中,虽然内置的支持不如现代编程语言全面,但通过引入第三方库或者自定义实现,也能实现...

    VB6 正则表达式类

    本篇将详细介绍一个基于VBScript的正则表达式对象创建的VB6正则表达式类,帮助你理解和应用正则表达式在VB6中的操作。 首先,VBScript的正则表达式对象(RegExp)提供了一个强大而灵活的方式来处理文本模式匹配。这...

    正则表达式提取图片

    在本案例中,我们通过一个具体的例子来展示如何利用正则表达式来提取图片。代码中提到了一个名为 `GetImgSrc` 的函数,该函数接收两个参数:`str` 和 `nopic`。其中 `str` 是需要从中提取图片的字符串,而 `nopic` ...

    EXCEL-VBA-正则表达式-从实例开始.docx

    正则表达式(Regular Expression),简称“regex”或“regexp”,是一种强大的文本模式匹配工具,广泛应用于多种编程语言中,用于进行复杂的文本搜索和处理任务。尽管正则表达式的概念并非VBA所独有,但在Excel VBA...

    正则表达式语法和应用

    四、正则表达式在VBScript中的应用 VBScript同样支持正则表达式,但需要引用`Microsoft VBScript Regular Expressions x.x`库。以下示例展示了如何在VBScript中使用正则表达式: ```vbscript Dim objRegex, ...

    正则表达式入门与提高

    在VBA中使用正则表达式,首先需要引用“Microsoft VBScript Regular Expressions 5.5”库。通过`Tools` -&gt; `References` 在VBA编辑器中添加引用,确保项目能够访问正则表达式对象模型。 正则表达式的基本元素包括:...

    正则表达式PPT示例讲解

    在实际应用中,构建正则表达式时要考虑性能和可读性。在某些语言中,如JavaScript和VBScript,正则表达式有不同的实现和效率特点。例如,VBScript中的正则表达式可以一次性执行多个字符串操作,而在PHP中,正则...

    精通正则表达式(第3版) Mastering.Regular.Expressions

    通过《精通正则表达式(第3版)》这本书,读者可以深入理解和精通正则表达式,挖掘出正则表达式在实际应用中的强大能力。无论是在数据分析、自动化脚本编写、还是在处理日常文本数据时,掌握正则表达式都将极大地...

    正则表达式测试

    在VB6.0中,我们可以使用MS VBScript Regular Expressions 5.5库来实现正则表达式功能。 首先,我们需要引入这个库到我们的VB6.0项目中。这可以通过在代码的顶部添加以下语句来完成: ```vb Dim regEx As New ...

Global site tag (gtag.js) - Google Analytics