|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
我想详细了解ASP整站代码与PSP整站代码有什么优缺点,那个更好,更安全,更用容易维护,和管理。。。编程|收集|正则 正则表达式在UBB论坛中的使用
1、UBB代码的观点
甚么是UBB代码?
UBB代码是HTML的一个变种。一样平常情形下,UBB论坛不同意你利用HTML代码,而只能用UBB代码替换HTML代码。
UBB代码是一套由盛行的UBB标签构成了流动代码,代码有一致的格局。用户只需遵守代码划定规矩就能够完成用户想要的功效。如:
想要显现粗体的howareyou字样,就应当输出howareyou而不是输出<b>howareyou</b>
你大概会问:ASP是如何把howareyou转换为<b>howareyou</b>的呢?
回覆这个成绩就是:用正则表达式。
2、实例剖析
1)在字符串中准确查找链接地点
((http|https|ftp):(//|\)((w)+[.]){1,}(net|com|cn|org|cc|tv|[0-9]{1,3})(((/[~]*|[~]*)
(w)+)|[.](w)+)*(((([?](w)+){1}[=]*))*((w)+){1}([&](w)+[=](w)+)*)*)
我们晓得,链接地点一样平常以http大概https大概ftp等情势呈现。开端总结一下就是,链接地点必需切合以下前提:
前提1
以http://大概https://大概ftp://等开首(固然另有别的情势,这里只列出次要的)
前提2
http://前面必需跟一个单词字符,紧接着单词字符前面的是"."(如许的组合必需呈现一次或屡次)。紧随着"."前面的是域名后缀(如net大概com大概cn等,假如是以IP地点的情势呈现就能够是数字)
前提3
呈现完全的链接地点后,还能够呈现下一级大概更多级的目次(还要注重团体主页的地点有大概呈现"~"标记)
前提4
链接地点开端能够带参数。如典范的页数?PageNo=2&action=display等
如今我们用上面的代码来逐一婚配下面的前提--
1、((http|https|ftp):(//|\)满意前提1
暗示http://http:https://https:ftp://ftp:都婚配(在这里思索了某些用户大概把"//"输成""的易发性毛病)
注重:"|"暗示"大概",""是本义字符。"//"暗示"//","\"暗示""
2、((w)+[.]){1,}(net|com|cn|org|cc|tv|[0-9]{1,3})满意前提2
"((w)+[.]){1,}"暗示一个单词字符加一个点号能够呈现1次大概屡次(这里思索了某些用户喜好省略www而将http://www.w3c.com写成http://w3c.com)
"(net|com|cn|org|cc|tv|[0-9]{1,3})"暗示必需要以net大概com大概cn大概org大概cc大概tv大概三位以下的数字停止
[0-9]{1,3}暗示三位以下的数字,由于ip地点的任何段不克不及凌驾255
3、(((/[~]*|[~]*)(w)+)|[.](w)+)*满意前提3
"(/[~]*|[~]*)"暗示能够呈现"/~"大概是"~",(个中"[~]*"暗示~能够呈现也能够不呈现),由于不是每一个链接地点都有下一级目次
"(w)+)|[.](w)+)"暗示必需呈现一个单词字符(即目次大概是一个带有扩大名的文件)
注重:最初另有一个"*"暗示下面括号内的能够呈现也能够不呈现,不然就只能婚配有下一级目次的链接地点了。
4、(((([?](w)+){1}[=]*))*((w)+){1}([&](w)+[=](w)+)*)*)满意前提4
"((([?](w)+){1}[=]*))*((w)+){1}"暗示形如"?PageNo=2"的字符串能够呈现也能够不呈现,假如呈现则只能呈现一次(由于不成能有两个"?"号呈现)。
"([&](w)+[=](w)+)*)"暗示形如"&action=display"的字符串能够呈现也能够不呈现(由于并非每一个网页都带有两个以上的参数。
全部"((([?](w)+){1}[=]*))*((w)+){1}([&](w)+[=](w)+)*)*"暗示形如"?PageNo=2&action=display"的字符串能够呈现也能够不呈现(即链接地点能够有参数也能够没有参数)
把下面的组合起来,我们就能够婚配一个对照周全的链接地点了。比用复杂的"(http://S+)"来婚配一个链接地点要好,读者能够自行行测试对照。固然,这段代码另有良多不敷的地方,但愿人人可以持续改善。
2)替换典范的UBB标签:
我们的目标就是要把成对的交换成<b></b>上面来看我们完成它的模板
()(.+)()
这里用了"(.+)"来配匹到之间的全部字符串,在替换的时分我们要写成如许
str=checkexp(re,str,"<b>$2</b>")
(注重:checkexp是我自界说的函数,将在前面给出。这个函数将把依照我们供应的模板举行替换。)
大概你会问这里呈现一个"$2"是甚么东东,呵注重了这个$2但是很主要的,它代表了"(.+)"所配匹的全部字符串。
为何是$2而不是$1、$3呢?由于$1代表()所婚配的""字符串,$3代表()所婚配的""字符串,明显这里我们必要的是$2而不是$1$3。</p>减少客户内IT专业人才缺乏带来的影响。ASP的客户员工利用浏览器进入相关的应用软件,简单易用,无需专业技术支持。 |
|