仓酷云

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

[学习教程] ASP网页编程之正则表达式简介(微软)--14.后向援用

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

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

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

x
ASP.NET和ASP的比较,技术上比较已经没什么可说的了.新一代在大部分程度来说当然是比旧一代好了.关键看你对所做软件的理解了.因人而定.会写的话也可能比ASP.NET写得更有效率和更方便重用微软|正则后向援用

正则表达式一个最主要的特征就是将婚配乐成的形式的某部分举行存储供今后利用这一才能。请回忆一下,对一个正则表达式形式或部分形式双方增加圆括号将招致这部分表达式存储到一个一时缓冲区中。可使用非捕捉元字符?:,?=,or?!来疏忽对这部分正则表达式的保留。

所捕捉的每一个子婚配都依照在正则表达式形式中从左至右所碰到的内容存储。存储子婚配的缓冲区编号从1入手下手,一连编号直至最年夜99个子表达式。每一个缓冲区都可使用
会见,个中n为一个标识特定缓冲区的一名或两位十进制数。

后向援用一个最复杂,最有效的使用是供应了断定笔墨中一连呈现两个不异单词的地位的才能。请看上面的句子:

Isisthecostofofgasolinegoingupup?

依据所写内容,下面的句子分明存在单词屡次反复的成绩。假如能有一种办法无需查找每一个单词的反复征象就可以修正该句子就行了。上面的VisualBasicScriptingEdition正则表达式利用一个子表达式就能够完成这一功效。

/([a-z]+)1/gi

等价的VBScript表达式为:

"([a-z]+)1"

在这个示例中,子表达式就是圆括号之间的每项。所捕捉的表达式包含一个或多个字母字符,即由[a-z]+所指定的。该正则表达式的第二部分是对后面所捕捉的子婚配的援用,也就是由附加表达式所婚配的第二次呈现的单词。1用来指定第一个子婚配。单词界限元字符确保只检测独自的单词。假如不如许,则诸如"isissued"或"thisis"如许的短语城市被该表达式不准确地辨认。

在VisualBasicScriptingEdition表达式中,正则表达式前面的全局标记(g)暗示该表达式将用来在输出字符串中查找尽量多的婚配。巨细写敏理性由表达式停止处的巨细写敏理性标志(i)指定。多行标志指定大概呈现在换行符的两头的潜伏婚配。对VBScript而言,在表达式中不克不及设置各类标志,但必需利用RegExp工具的属性来显式设置。

利用下面所示的正则表达式,上面的VisualBasicScriptingEdition代码可使用子婚配信息,在一个笔墨字符串中将一连呈现两次的不异单词交换为一个不异的单词:

varss="Isisthecostofofgasolinegoingupup?.
";
varre=/([a-z]+)1/gim;//创立正则表达式款式.
varrv=ss.replace(re,"$1");//用一个单词替换两个单词.

最靠近的等价VBScript代码以下:

Dimss,re,rv
ss="Isisthecostofofgasolinegoingupup?."&vbNewLine
Setre=NewRegExp
re.Pattern="([a-z]+)1"
re.Global=True
re.IgnoreCase=True
re.MultiLine=True
rv=re.Replace(ss,"$1")

请注重在VBScript代码中,全局、巨细写敏理性和多行标志都是利用RegExp工具的得当属性来设置的。

在replace办法中利用$1来援用所保留的第一个子婚配。假如有多个子婚配,则能够用$2,$3等持续援用。

后向援用的另外一个用处是将一个通用资本唆使符(URI)分化为组件部分。假定但愿将下述的URI分化为协定(ftp,http,etc),域名地点和页面/路径:

http://msdn.microsoft.com:80/scripting/default.htm

上面的正则表达式能够供应这个功效。对VisualBasicScriptingEdition,为:

/(w+)://([^/:]+)(:d*)?([^#]*)/

对VBScript为:

"(w+)://([^/:]+)(:d*)?([^#]*)"

第一个附加子表达式是用来捕捉该web地点的协定部分。该子表达式婚配位于一个冒号和两个正斜杠之前的任何单词。第二个附加子表达式捕捉该地点的域名地点。该子表达式婚配不包含^、/或:字符的任何字符序列。第三个附加子表达式捕捉网站端标语码,假如指定了该端标语。该子表达式婚配后跟一个冒号的零或多个数字。最初,第四个附加子表达式捕捉由该web地点指定的路径和大概页面信息。该子表达式婚配一个和多个除#或空格以外的字符。

将该正则表达式使用于下面所示的URI后,子婚配包括下述内容:

RegExp.$1包括"http"

RegExp.$2包括"msdn.microsoft.com"

RegExp.$3包括":80"

RegExp.$4包括"/scripting/default.htm"

</p>缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。
愤怒的大鸟 该用户已被删除
沙发
发表于 2015-1-19 21:33:10 | 只看该作者
在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。
小妖女 该用户已被删除
板凳
发表于 2015-1-24 17:49:43 | 只看该作者
Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write
老尸 该用户已被删除
地板
发表于 2015-2-2 11:32:27 | 只看该作者
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
灵魂腐蚀 该用户已被删除
5#
发表于 2015-2-7 19:09:43 | 只看该作者
他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
谁可相欹 该用户已被删除
6#
发表于 2015-2-23 01:19:01 | 只看该作者
哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?
小女巫 该用户已被删除
7#
发表于 2015-3-7 04:42:54 | 只看该作者
如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:
变相怪杰 该用户已被删除
8#
发表于 2015-3-14 10:42:29 | 只看该作者
我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。
莫相离 该用户已被删除
9#
发表于 2015-3-21 03:27:47 | 只看该作者
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-20 15:35

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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