仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 481|回复: 8
打印 上一主题 下一主题

[学习教程] ASP编程:ASP中正则表达式的使用 挑选自 bigcarp...

[复制链接]
愤怒的大鸟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:50:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
缺乏可以共同遵循的行业标准,ASP还处在发展初期,大家对它的理解不同,如产品和服务标准,收费标准等,不利于行业的健康发展。正则ASP中正则表达式的使用(一)
http://www.jojoo.net/article/list.asp?id=4567
  1、正则表达式概述
  2、正则表达式在VBScript中的使用
  3、正则表达式在VavaScript中的使用
  4、示例
  5、总结

  1、正则表达式概述
  假如本来没有利用过正则表达式,那末大概对这个术语和观点会不太熟习。不外,它们并非您设想的那末别致。
  请回忆一下在硬盘上是怎样查找文件的。您一定会利用?和*字符来匡助查找您正寻觅的文件。?字符婚配文件名中的单个字符,而*则婚配一个或多个字符。一个如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标志。

  2、正则表达式在VBScript中的使用
  VBScript利用RegExp工具、Matches汇合和Match工具供应正则表达式撑持功效。我们仍是先看一个例子。
<%
FunctionRegExpTest(patrn,strng)
DimregEx,Match,Matches  创建变量。
SetregEx=NewRegExp  创建正则表达式。
regEx.Pattern=patrn  设置形式。
regEx.IgnoreCase=True  设置是不是辨别字符巨细写。
regEx.Global=True  设置全局可用性。
SetMatches=regEx.Execute(strng)  实行搜刮。
ForEachMatchinMatches  遍历婚配汇合。
RetStr=RetStr&"Matchfoundatposition"
RetStr=RetStr&Match.FirstIndex&".MatchValueis"
RetStr=RetStr&Match.Value&"."&"<BR>"
Next
RegExpTest=RetStr
EndFunction
response.writeRegExpTest("[ij]s.","IS1Js2IS3is4")
%>
在这个例子中,我们查找字符串中有没有is大概js这两个词,疏忽巨细写。运转的了局以下:
Matchfoundatposition0.MatchValueisIS1.
Matchfoundatposition4.MatchValueisJs2.
Matchfoundatposition8.MatchValueisIS3.
Matchfoundatposition12.MatchValueisis4.
上面我们就先容这三个工具和汇合。
  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办法的用法。
<%
FunctionReplaceTest(patrn,replStr)
DimregEx,str1创建变量。
str1="Thequickbrownfoxjumpedoverthelazydog."
SetregEx=NewRegExp创建正则表达式。
regEx.Pattern=patrn设置形式。
regEx.IgnoreCase=True设置是不是辨别巨细写。
ReplaceTest=regEx.Replace(str1,replStr)作交换。
EndFunction
Response.writeReplaceTest("fox","cat")&"<BR>"将fox交换为cat。
Response.writeReplaceTest("(S+)(s+)(S+)","$3$2$1")互换词对.
%>
  2、Test办法
  对指定的字符串实行一个正则表达式搜刮,并前往一个Boolean值唆使是不是找到婚配的形式。正则表达式搜刮的实践形式是经由过程RegExp工具的Pattern属性来设置的。RegExp.Global属性对Test办法没有影响。
  假如找到了婚配的形式,Test办法前往True;不然前往False。上面的代码申明了Test办法的用法。
<%
FunctionRegExpTest(patrn,strng)
DimregEx,retVal创建变量。
SetregEx=NewRegExp创建正则表达式。
regEx.Pattern=patrn设置形式。
regEx.IgnoreCase=False设置是不是辨别巨细写。
retVal=regEx.Test(strng)实行搜刮测试。
I</p>缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。
若天明 该用户已被删除
沙发
发表于 2015-1-20 05:29:20 | 只看该作者
跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组
乐观 该用户已被删除
板凳
发表于 2015-1-26 12:37:17 | 只看该作者
下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。
老尸 该用户已被删除
地板
发表于 2015-2-4 14:44:03 | 只看该作者
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。
海妖 该用户已被删除
5#
发表于 2015-2-10 01:45:35 | 只看该作者
掌握asp的特性而且一定要知道为什么。
透明 该用户已被删除
6#
发表于 2015-2-28 13:19:53 | 只看该作者
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
爱飞 该用户已被删除
7#
发表于 2015-3-9 23:50:16 | 只看该作者
我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
蒙在股里 该用户已被删除
8#
发表于 2015-3-17 03:09:18 | 只看该作者
学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:
谁可相欹 该用户已被删除
9#
发表于 2015-3-23 17:30:59 | 只看该作者
他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 02:53

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表