我试过很多regex,但大多数都能检测到电子邮件。
例如, http://www.google.com
检测正常。但是email link也检测到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
函数,因为我需要捕获url并对其进行更改
我猜这将是一个(相当好的通用正则表达式)为常规url(不使用用户名,端口,unicode字符…)
(ht|f)tp(s?):'/{2}(www'.)?([a-z0-9-]+'.)?([a-z0-9-]+'.)?([a-z]{2,4})([a-z0-9'/?&=_()#-]*)