ASP教程之ASP中正则表达式的使用(一)
因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQLServer还有更多的扩展,可以用存储过程,数据库大小无极限限制。正则 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("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)实行搜刮测试。
IfretValThen
RegExpTest="找到一个或多个婚配。"
Else
</p>优点:简单易学、开发速度快、有很多年“历史”,能找到非常多别人做好的程序来用、配合activeX功能强大,很多php做不到的asp+activeX能做到,例如银行安全控件 ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。 下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。 ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。 因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。 哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的? 虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。 交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。 我想问如何掌握学习节奏(先学什么再学什么)最好详细点? 代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
页:
[1]