灵魂腐蚀 发表于 2015-1-16 22:21:42

ASP教程之RegExp工具正则表达式功能用法

由于ASP提供的是一对多的服务,所以用户的一些特殊需求很难得到满足。工具|正则RegExp工具的用法:

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&"."&vbCRLF
Next
RegExpTest=RetStr
EndFunction

MsgBox(RegExpTest("is.","IS1is2IS3is4"))

  RegExp工具的属性

  ◎Global属性

  Global属性设置或前往一个Boolean值,该值指明在全部搜刮字符串时形式是全体婚配仍是只婚配第一个。
  语法
object.Global[=True|False]
  object参数老是RegExp工具。假如搜刮使用于全部字符串,Global属性的值为True,不然其值为False。默许的设置为True。

  Global属性的用法(改动付与Global属性的值并察看其效果):
FunctionRegExpTest(patrn,strng)
DimregEx创建变量。
SetregEx=NewRegExp创建标准表达式。
regEx.Pattern=patrn设置形式。
regEx.IgnoreCase=True设置是不是辨别字母的巨细写。
regEx.Global=True设置全程性子。
RegExpTest=regEx.Execute(strng)实行搜刮。
EndFunction

MsgBox(RegExpTest("is.","IS1is2IS3is4"))

  ◎IgnoreCase属性

  IgnoreCase属性设置或前往一个Boolean值,指明形式搜刮是不是辨别巨细写。
  语法
object.IgnoreCase[=True|False]
  object参数老是一个RegExp工具。假如搜刮是辨别巨细写的,则IgnoreCase属性为False;不然为True。缺省值为True。

  IgnoreCase属性的用法(改动付与IgnoreCase属性的值以察看其效果):
FunctionRegExpTest(patrn,strng)
DimregEx创建变量。
SetregEx=NewRegExp创建正则表达式。
regEx.Pattern=patrn设置形式。
regEx.IgnoreCase=True设置是不是辨别巨细写。
RegExpTest=regEx.Execute(strng)实行搜刮。
EndFunction

MsgBox(RegExpTest("is.","IS1is2IS3is4"))

  ◎Pattern属性

  Pattern属性设置或前往被搜刮的正则表达式形式。
  语法
object.Pattern[="searchstring"]
Pattern属性的语法包括以下几个部分:

  语法申明:
object必须的。老是一个RegExp工具变量。
searchstring可选的。被搜刮的正则字符串表达式。它大概包括设置部分表格中的各类正则表达式字符。

  设置
  在誊写正则表达式的形式时利用了特别的字符和序列。上面形貌了可使用的字符和序列,并给出了实例。
 将下一个字符标志为特别字符或字面值。比方"n"与字符"n"婚配。"
"与换行符婚配。序列""与""婚配劈面,"("与"("婚配。
 ^婚配输出的入手下手地位。
 $婚配输出的开头。
 *婚配前一个字符零次或几回。比方,"zo*"能够婚配"z"、"zoo"。
 +婚配前一个字符一次或屡次。比方,"zo+"能够婚配"zoo",但不婚配"z"。
 ?婚配前一个字符零次或一次。比方,"a?ve?"能够婚配"never"中的"ve"。
 .婚配换行符之外的任何字符。
 (pattern)与形式婚配并记着婚配。婚配的子字符串能够从作为了局的Matches汇合中利用Item...获得。假如要婚配括号字符(和),可以使用"("或")"。
 x|y婚配x或y。比方"z|food"可婚配"z"或"food"。"(z|f)ood"婚配"zoo"或"food"。
 {n}n为非负的整数。婚配刚好n次。比方,"o{2}"不克不及与"Bob中的"o"婚配,可是能够与"foooood"中的前两个o婚配。
 {n,}n为非负的整数。婚配最少n次。比方,"o{2,}"不婚配"Bob"中的"o",可是婚配"foooood"中一切的o。"o{1,}"等价于"o+"。"o{0,}"等价于"o*"。
 {n,m}m和n为非负的整数。婚配最少n次,最多m次。比方,"o{1,3}"婚配"fooooood"中前三个o。"o{0,1}"等价于"o?"。
 一个字符集。与括号中字符的个中之一婚配。比方,""婚配"plain"中的"a"。
 [^xyz]一个否认的字符集。婚配不在此括号中的任何字符。比方,"[^abc]"能够婚配"plain"中的"p".
 暗示某个局限内的字符。与指定区间内的任何字符婚配。比方,""婚配"a"与"z"之间的任何一个小写字母字符。
 [^m-z]否认的字符区间。与不在指定区间内的字符婚配。比方,""与不在"m"到"z"之间的任何字符婚配。
 与单词的界限婚配,即单词与空格之间的地位。比方,"er"与"never"中的"er"婚配,可是不婚配"verb"中的"er"。
 B与非单词界限婚配。"ea*rB"与"neverearly"中的"ear"婚配。
 d与一个数字字符婚配。等价于。
 D与非数字的字符婚配。等价于[^0-9]。
 f与分页符婚配。
 
与换行符字符婚配。
 与回车字符婚配。
 s与任何白字符婚配,包含空格、制表符、分页符等。等价于"[f
        v]"。
 S与任何非空缺的字符婚配。等价于"[^f
        v]"。
         与制表符婚配。
 v与垂直制表符婚配。
 w与任何单词字符婚配,包含下划线。等价于""。
 W与任何非单词字符婚配。等价于"[^A-Za-z0-9_]"。
 
um婚配num个,个中num为一个正整数。援用回到记着的婚配。比方,"(.)1"婚配两个一连的不异的字符。
 
婚配n,个中n是一个八进制换码值。八进制换码值必需是1,2或3个数字长。比方,"11"和"11"都与一个制表符婚配。"011"等价于"01"与"1"。八进制换码值不得凌驾256。不然,只要前两个字符被视为表达式的一部分。同意在正则表达式中利用ASCII码。
 xn婚配n,个中n是一个十六进制的换码值。十六进制换码值必需刚好为两个数字长。比方,"x41"婚配"A"。"x041"等价于"x04"和"1"。同意在正则表达式中利用ASCII码。

  Pattern属性的用法:
FunctionRegExpTest(patrn,strng)
DimregEx创建变量。
SetregEx=NewRegExp创建正则表达式。
regEx.Pattern=patrn设置形式。
regEx.IgnoreCase=True设置是不是辨别巨细写。
RegExpTest=regEx.Execute(strng)实行搜刮。
EndFunction

MsgBox(RegExpTest("is.","IS1is2IS3is4"))

  RegExp工具的办法

  ◎Execute办法

  Execute办法对指定的字符串实行正则表达式搜刮。
  语法
object.Execute(string)
  语法部分形貌
object必须的。老是一个RegExp工具的称号。
string必须的。要在其上实行正则表达式的文本字符串。

  申明
  正则表达式搜刮的计划形式是经由过程RegExp工具的Pattern来设置的。
  Execute办法前往一个Matches汇合,个中包括了在string中找到的每个婚配的Match工具。假如未找到婚配,Execute将前往空的Matches汇合。

  Execute办法的用法:
FunctionRegExpTest(patrn,strng)
DimregEx创建变量。
SetregEx=NewRegExp创建正则表达式。
regEx.Pattern=patrn设置形式。
regEx.IgnoreCase=False设置辨别巨细写。
regEx.Global=True搜刮全体婚配。
RegExpTest=regEx.Execute(strng)实行搜刮。
EndFunction

MsgBox(RegExpTest("is.","IS1is2IS3is4"))

  ◎Replace办法

  Replace办法交换在正则表达式查找中找到的文本。
  语法
object.Replace(string1,string2)
  语法部分形貌
object必须的。老是一个RegExp工具的称号。
string1必须的。string1是将要举行文本交换的字符串。
string2必须的。string2是交换文本字符串。

  申明
  被交换的文本的实践形式是经由过程RegExp工具的Pattern属性设置的。
  Replace办法前往string1的正本,个中的RegExp.Pattern文本已被交换为string2。假如没有找到婚配的文本,将前往本来的string1的正本。

  eplace办法的用法:
FunctionReplaceTest(patrn,replStr)
DimregEx,str1创建变量。
str1="Thequickbrownfoxjumpedoverthelazydog."
SetregEx=NewRegExp创建正则表达式。
regEx.Pattern=patrn设置形式。
regEx.IgnoreCase=True设置是不是辨别巨细写。
ReplaceTest=regEx.Replace(str1,replStr)作交换。
EndFunction

MsgBox(ReplaceTest("fox","cat"))
将fox交换为cat。

;别的,Replace办法在形式中交换subexpressions。上面对之前示例中函数的挪用,交换了原字符串中的一切字对:
MsgBox(ReplaceText("(S+)(s+)(S+)","$3$2$1"))Swappairsofwords.

  ◎Test办法

  Test办法对指定的字符串实行一个正则表达式搜刮,并前往一个Boolean值唆使是不是找到婚配的形式。
  语法
object.Test(string)
  语法部分形貌
object必须的。老是一个RegExp工具的称号。
string必须的。要实行正则表达式搜刮的文本字符串。

申明
  正则表达式搜刮的实践形式是经由过程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
RegExpTest="未找到婚配。"
EndIf
EndFunction

MsgBox(RegExpTest("is.","IS1is2IS3is4"))asp是基于web的一种编程技术,可以说是cgi的一种。它可以完成以往cgi程序的所有功能,如计数器、留言簿、公告板、聊天室等等。

只想知道 发表于 2015-1-19 09:26:09

以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。

莫相离 发表于 2015-1-27 18:50:27

不能只是将它停留在纸上谈兵的程度上。

蒙在股里 发表于 2015-2-5 11:44:29

尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。

小魔女 发表于 2015-2-11 15:50:12

交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。

第二个灵魂 发表于 2015-3-2 15:43:46

他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。

老尸 发表于 2015-3-11 04:28:40

不能只是将它停留在纸上谈兵的程度上。

变相怪杰 发表于 2015-3-17 20:57:11

运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。

透明 发表于 2015-3-25 02:34:56

那么,ASP.Net有哪些改进呢?
页: [1]
查看完整版本: ASP教程之RegExp工具正则表达式功效用法