我提出了以下正则表达式来匹配有效的url。
^(?:(ftp|http|https):\/\/)?(?:[a-zA-Z]+\.){0,1}(?:[a-zA-Z0-9][a-zA-Z0-9-]+){1}(?:\.[a-zA-Z]{2,6})?$这匹配(ftp、http、http、https)可选的、没有.com或任何内容的域名,但我也希望捕获.com之后的所有内容。
上述正则表达式验证http://stackoverflow.com或localhost或google.com,但不验证http://stackoverflow.com/questions/ask。
发布于 2013-12-09 07:58:25
为了匹配剩余的URI,您可以在最后添加\S*:
^(?:(ftp|http|https):\/\/)?(?:[a-zA-Z]+\.){0,1}(?:[a-zA-Z0-9][a-zA-Z0-9-]+){1}(?:\.[a-zA-Z]{2,6})?(\/|\/\w\S*)?$
但是要解析URL的各种组件,最好使用built-in parse_url function.
替换以验证本地urls:
^(?:(ftp|http|https):\/\/)?(?:[a-zA-Z0-9.]+\.){0,1}(?:[a-zA-Z0-9][a-zA-Z0-9-]+){1}(?:\.[a-zA-Z]{2,6})?(\/|\/[\w#!:.?+=&%@!\-\/]*)?$
例: 172.18.11.178
https://stackoverflow.com/questions/20465081
复制相似问题