设为首页
收藏本站
最新电影
> 子栏目 Asp | Jsp | XML | XSL | Div+Css | 自定义函数 | 数据库 | 脚本特效
您现在的位置: 首页=>后台技术=>Asp 订阅本栏目  
ASP中正则表达式的应用与学习
时间: 2007-09-28 21:57:45 阅读次数:4916

第 1 页 ASP中正则表达式的应用与学习[1]
第 2 页 ASP中正则表达式的应用与学习[2]

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

  一、正则表达式概述
  如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉不过,它们并不是您想象的那么新奇
  请回想一下在硬盘上是如何查找文件的您肯定会使用 ? 和 * 字符来帮助查找您正寻找的文件? 字符匹配文件名中的单个字符,而 * 则匹配一个或多个字符一个如 'data?.dat' 的模式可以找到下述文件:data1.dat、data2.dat等等如果使用 * 字符代替 ? 字符,则将扩大找到的文件数量'data*.dat' 可以匹配下述所有文件名:data.dat、data1.dat、data12.dat等等,尽管这种搜索文件的方法肯定很有用,但也十分有限? 和 * 通配符的有限能力可以使你对正则表达式能做什么有一个概念,不过正则表达式的功能更强大,也更灵活
  在我们编写ASP程序时,经常会判断一个字符串的有效性,如;一个串是否是数字、是否是有效的Email地址等等如果不使用正则表达式,那么判断的程序会很长,并且容易出错,如果使用正则表达式,这些判断就是一件很轻松的工作了后面我们将介绍如何判断数字和Email地址的有效性飞飞~Asp技术乐园
  在典型的搜索和替换操作中,必须提供要查找的确切文字这种技术对于静态文本中的简单搜索和替换任务可能足够了,但是由于它缺乏灵活性,因此在搜索动态文本时就有困难了,甚至是不可能的
  使用正则表达式,能完成些什么事情呢?
  测试字符串的某个模式例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式这称为数据有效性验证
  替换文本可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字
  根据模式匹配从字符串中提取一个子字符串可以用来在文本或输入字段中查找特定文字
  例如,如果需要搜索整个 web 站点来删除某些过时的材料并替换某些HTML 格式化标记,则可以使用正则表达式对每个文件进行测试,看在该文件中是否存在所要查找的材料或 HTML 格式化标记用这个方法,就可以将受影响的文件范围缩小到包含要删除或更改的材料的那些文件然后可以使用正则表达式来删除过时的材料,最后,可以再次使用正则表达式来查找并替换那些需要替换的标记
  那么,正则表达式语法的语法是如何呢?
  一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式该模式描述在查找文字主体时待匹配的一个或多个字符串正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配
  这里有一些可能会遇到的正则表达式示例:
  /^\[ \t]*$/ "^\[ \t]*$" 匹配一个空白行
  /\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 属性,设置或返回一个 Boolean 值,该值指明在整个搜索字符串时模式是全部匹配还是只匹配第一个如果搜索应用于整个字符串,Global 属性的值为 True,否则其值为 False默认的设置为 False
  ○IgnoreCase 属性,设置或返回一个Boolean值,指明模式搜索是否区分大小写如果搜索是区分大小写的,则 IgnoreCase 属性为 False;否则为 True缺省值为 False
  ○Pattern 属性,设置或返回被搜索的正则表达式模式必选项总是一个 RegExp 对象变量
  2、Match 对象
  匹配搜索的结果是存放在Match对象中,提供了对正则表达式匹配的只读属性的访问飞飞Asp技术乐园 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") ' 交换词对.
%>





[上一页] [下一页]
站内搜索    

下一篇session.contents的介绍

上一篇vbscript Asc 函数 使用介绍

本栏目最新 栏目最新列表
HTTP 401.5 - 未经授权:ISAPI/CGI 应用程序
Asp使用FSO写UTF-8编码文件的方法
asp操作,控制excel的方法
让ewebeditor兼容ie8的方法
Asp实现二级域名的方法
网站优化策划 栏目最新列表
增加网站外链的快速方法
网站上线前必做的30个检查
新的友情链接参考标准(没有google的PR情况
优化Google的AdSense广告的五个工具
王通讲SEO八大基础
站点最新 站点最新列表
微博推广的一些技巧
xhEditor v1.1.7 发布,
收集的一些轻量级非常实
50个新鲜兼容最新版本的
javascript中cookie的设
Excel中出现#VALUE!、#D
jquery插件:飞飞表情插件
十个使用HTML5开发的精彩
支持HTML5的浏览器有哪些
飞妮莫属:漫画:如何写出
历史最热10条信息  
MIME介绍 及 [1] [2] [3]
巧用Google和迅雷来下载
Transact SQL 常 [1] [2]
VIA Rhine II Fast Ethe
电脑常用端 [1] [2] [3]
Do you get a kick out
十道羊皮卷 欣赏+mp3版+
每日一句:A friend and
每日一句:Theres no tu
经典__悟透JavaScript
相关文章
常用正则表达式
ASP中正则表达式的应
字符串替换 Replace
Asp 正则表达式 过滤
Asp 正则表达式 过滤
Asp 正则表达式 过滤
Asp 正则表达式 过滤
Asp 正则表达式 过滤
Asp 正则表达式 过滤
Asp 正则表达式 过滤
 
 width= 
伟哥博客 西安房产 123最新电影 三四六四