猿问

如题目,最好给我稍微解释下一两个正则表达式替换是怎么实现的,随便说说就行!谢谢

<%
Public Function Ubbcode(strcontent)
dim re
Set re=new RegExp
re.IgnoreCase =true
re.Global=True

'strcontent=Replace(strcontent,"file:","file :")
'strcontent=Replace(strcontent,"files:","files :")
'strcontent=Replace(strcontent,"script:","script :")
'strcontent=Replace(strcontent,"js:","js :")

'图片UBB
re.pattern="\[img\](http|https|ftp):\/\/(.[^\[]*)\[\/img\]"
strcontent=re.replace(strcontent,"<a onfocus=""this.blur()"" href=""$1://$2"" target=new><img src=""$1://$2"" border=""0"" alt=""按此在新窗口浏览图片"" onload=""javascript:if(this.width>screen.width-333)this.width=screen.width-333""></a>")
'链接UBB
re.pattern="(\[url\])(.[^\[]*)(\[url\])"
strcontent= re.replace(strcontent,"<a href=""$2"" target=""new"">$2</a>")
re.pattern="\[url=(.[^\[]*)\]"
strcontent= re.replace(strcontent,"<a href=""$1"" target=""new"">")
'邮箱UBB
re.pattern="(\[email\])(.*?)(\[\/email\])"
strcontent= re.replace(strcontent,"<img align=""absmiddle"" ""src=image/email1.gif""><a href=""mailto:$2"">$2</a>")
re.pattern="\[email=(.[^\[]*)\]"
strcontent= re.replace(strcontent,"<img align=""absmiddle"" src=""image/email1.gif""><a href=""mailto:$1"" target=""new"">")

慕森王
浏览 205回答 2
2回答

炎炎设计

在replace函数中,$1,$2,$3,可以分别用来表示:正则表达式中,匹配出的第1、2、3个子表达式。但如果$1,$2,$3直接写在正则表达式中,是不合法的。这串HTML代码中的$1,$2,$3其实和正则表达式无关,只是变量,起占位的作用:在服务器端,会通过脚本(如Node.js)将HTML文件中的$1,$2,$3批量替换为实际字符串。

慕姐8265434

$1,$2,$3和正则表达式无关,这个代码应该是放在服务器上运行的,相当于一个变量。执行完之后,$1,$2,$3就被赋予实际的值了。这里起个站位的作用。正则表达式内容有点多哦,大概说一下^表示开始$结尾\用来转义[a-z]指的范围在a-z[a-z]{6}6位a-z范围的值[a-z]*不限制长度范围
随时随地看视频慕课网APP
我要回答