[PHP]正则表达式判断网址

来源:https://segmentfault.com/q/1010000000584340/a-1020000000584362正则表达式

 

Markdown 的做者之一写的正则表达式(原文在这segmentfault

(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))

测试代码:测试

// 注意,这里把上面的正则表达式中的单引号用反斜杠转义了,否则无法放在字符串里
$regex = '@(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'".,<>?«»“”‘’]))@';

var_dump( preg_match($regex, 'http://segmentfault.com/q/1010000000584340') );  //true
相关文章
相关标签/搜索