明凯博客

关注网站技术,一个特立独行的程序员

ASP正则表达式的使用方法及应用

一、正则表达式概述
在我们编写ASP程序时,经常会判断一个字符串的有效性,
如;一个串是否是数字、是否是有效的Email地址等等。如果不使用正则表达式,那么判断的程序会很长,并且容易出错,如果使用正则表达式,这些判断就是一件很轻松的工作了。
在典型的搜索和替换操作中,必须提供要查找的确切文字。
这种技术对于静态文本中的简单搜索和替换任务可能足够了,但是由于它缺乏灵活性,因此在搜索动态文本时就有困难了,甚至是不可能的。
使用正则表达式,能完成些什么事情呢?
测试字符串的某个模式。
例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证。
替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字。
根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字。
这里有一些可能会遇到的正则表达式示例:

/^\[ \t]*$/ “^\[ \t]*$” 匹配一个空白行。
/\d{2}-\d{5}/ “\d{2}-\d{5}” 验证一个ID 号码是否由一个2位数字,一个连字符以及一个5位数字组成。
/< (.*)>.*< \/\1>/ “< (.*)>.*< \/\1>” 匹配一个 HTML 标记。

二、正则表达式在VBScript中的使用方法
VBScript使用RegExp对象、Matches集合以及Match对象提供正则表达式支持功能。我们还是先看一个例子。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
< % 
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、Replace 方法
替换在正则表达式查找中找到的文本。我们还是先看个例子:
下面的例子说明了 Replace 方法的用法。
复制代码 代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
< % 
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 方法的用法。
复制代码 代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
< % 
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 集合。

, , , ,

相关文章

2 条评论 “ASP正则表达式的使用方法及应用

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注