PHP正则表达式只检测网站URL而不是电子邮件

时间:2014-08-26 08:06:11

标签: php regex

我已经尝试了很多正则表达式,但大多数都检测到了电子邮件。

例如,

正确检测到

http://www.google.com。 但是,电子邮件链接也检测到andreweuwhd38@hotmail.com

Regex尝试过:

#[-a-zA-Z0-9:%_\+.~\#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~\#?&//=]*)?#si
#((http|https|ftp)://(\S*?\.\S*?))(\s|\;|\)|\]|\[|\{|\}|,|\"|'|:|\<|$|\.\s)#
#[-a-zA-Z0-9@:%_\+.~\#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~\#?&//=]*)?#si

我无法使用FILTER_VALIDATE函数,因为我需要捕获网址并对其进行更改。

1 个答案:

答案 0 :(得分:0)

我想这个常规网址是一个(非常好的通用正则表达式)(不使用用户名,端口,unicode caracters ...)

(ht|f)tp(s?):\/{2}(www\.)?([a-z0-9-]+\.)?([a-z0-9-]+\.)?([a-z]{2,4})([a-z0-9\/?&=_()#-]*)