主题:  正则表达式问题请教

不是高手

职务:普通成员
等级:3
金币:5.0
发贴:1352
#12004/10/13 9:37:00
正则表达式学的不好,照别人代码写了一个UBB代码,可是有问题

dim objRegExp
Set objRegExp=new RegExp
objRegExp.IgnoreCase =true
objRegExp.Global=True

objRegExp.Pattern="(\[EMAIL\])(\S+\@\S+?)(\[\/EMAIL\])"
str= objRegExp.Replace(str,"<img src=""images/icon_oe.gif"" width=""16"" height=""16"" hspace=""3""><a href=""mailto:$2"">$2</a>")

objRegExp.Pattern="(\[EMAIL=(\S+\@\S+?)\])(.[^\[]*)(\[\/EMAIL\])"
str= objRegExp.Replace(str,"<img src=""images/icon_oe.gif"" width=""16"" height=""16"" hspace=""3""><a href=""mailto:$2"">$3</a>")


在转换单个MAIL地址的时候没问题,可在转换一连串的MAIL地址时它为什么只认第一个和最后一个UBB代码?比如[mail]abc@abc.com[/mail]是好的,在转[mail]abc@abc.com[/mail][mail]abc@abc.com[/mail][mail]abc@abc.com[/mail][mail]abc@abc.com[/mail]的时候,程序只认第一个[mail]和最后一个[/mail],当中它统统成地址了



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#22004/10/13 11:05:36
换成这个试试,但不算是最好电子邮件确认格式
"(\[EMAIL\])(\w+\@\w+(.\w+)+)(\[\/EMAIL\])"
"(\[EMAIL=)(\w+\@\w+(.\w+)+)(\]\[\/EMAIL\])"


非常大鱼

不是高手

职务:普通成员
等级:3
金币:5.0
发贴:1352
#32004/10/13 11:23:25
谢谢楼上,好像这是你第二次帮我了!
上次是SQL查询问题,呵呵



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#42004/10/13 14:32:56
aquarior在上个帖子中说
引用:
谢谢楼上,好像这是你第二次帮我了!
上次是SQL查询问题,呵呵


是吗
电子邮件还可以细化,不过一般不太严格的认证还是够了。


非常大鱼