当前位置: 首页 > 图文教程 > 网络编程 > ASP > 四步讲解ASP中正则表达式的应用

ASP
提高SQL的执行效率的ASP的五种做法
asp的offset的一个go to page
asp中command的在单条记录时,有些字段显示为空的问题
asp,php一句话木马整理方便查找木马
asp 合并记录集并删除的sql语句
asp下循环一行多少个
asp循环行数输出函数
asp access重新开始编号
ASP生成数字相加求和的BMP图片验证码
静态页面利用JS读取cookies记住用户信息
比较详细的Asp伪静态化方法及Asp静态化探讨
asp Response.flush 实时显示进度
Asp高级故障解决以及相关代码
asp智能脏话过滤系统v1.0
ASP文件中的安全问题
Access数据库中“所有记录中均未找到搜索关键字”的解决方法
asp两组字符串数据比较合并相同数据
asp MYSQL出现问号乱码的解决方法
asp文章中随机插入网站版权文字的实现代码
ASP利用XMLHTTP实现表单提交以及cookies的发送的代码

四步讲解ASP中正则表达式的应用


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 558 ::
收藏到网摘: n/a

分为四个部分来讲解

一、正则表达式概述
二、正则表达式在VBScript中的应用
三、正则表达式在VavaScript中的应用
四、示例

首先:

  一、正则表达式概述

  如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉。不过,它们并不是您想象的那么新奇。

  请回想一下在硬盘上是如何查找文件的。您肯定会使用 ? 和 * 字符来帮助查找您正寻找的文件。? 字符匹配文件名中的单个字符,而 * 则匹配一个或多个字符。一个如 'data?.dat' 的模式可以找到下述文件:data1.dat、data2.dat等等。如果使用 * 字符代替 ? 字符,则将扩大找到的文件数量。'data*.dat' 可以匹配下述所有文件名:data.dat、data1.dat、data12.dat等等,尽管这种搜索文件的方法肯定很有用,但也十分有限。? 和 * 通配符的有限能力可以使你对正则表达式能做什么有一个概念,不过正则表达式的功能更强大,也更灵活。

  在我们编写ASP程序时,经常会判断一个字符串的有效性,如;一个串是否是数字、是否是有效的Email地址等等。如果不使用正则表达式,那么判断的程序会很长,并且容易出错,如果使用正则表达式,这些判断就是一件很轻松的工作了。后面我们将介绍如何判断数字和Email地址的有效性。

  在典型的搜索和替换操作中,必须提供要查找的确切文字。这种技术对于静态文本中的简单搜索和替换任务可能足够了,但是由于它缺乏灵活性,因此在搜索动态文本时就有困难了,甚至是不可能的。

  使用正则表达式,能完成些什么事情呢?

  测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证。

  替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字。

  根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字。

  例如,如果需要搜索整个 web 站点来删除某些过时的材料并替换某些HTML 格式化标记,则可以使用正则表达式对每个文件进行测试,看在该文件中是否存在所要查找的材料或 HTML 格式化标记。用这个方法,就可以将受影响的文件范围缩小到包含要删除或更改的材料的那些文件。然后可以使用正则表达式来删除过时的材料,最后,可以再次使用正则表达式来查找并替换那些需要替换的标记。

  那么,正则表达式语法的语法是如何呢?

  一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

  这里有一些可能会遇到的正则表达式示例:

  /^[ ]*$/ "^[ ]*$" 匹配一个空白行。

  /d{2}-d{5}/ "d{2}-d{5}" 验证一个ID 号码是否由一个2位数字,一个连字符以及一个5位数字组成。

  /<(.*)>.*</1>/ "<(.*)>.*</1>" 匹配一个 HTML 标记。

 

   二、正则表达式在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 属性,设置或返回一个