有人能帮我构建regex以确保字符串以下列之一开头吗?
https://www.youtube.com
https://www.youtube.be
http://www.youtube.com
http://www.youtube.be
https://youtube.com
https://youtube.be
http://youtube.com
http://youtube.be
www.youtube.com
www.youtube.be
youtube.com
youtube.be我正在PHP上工作,它允许人们将YouTube视频添加到网页中,我只需要确保用户添加的链接是适当的,并且也是一个有效的URL。这应该足够安全,以便在用户输入字符串后存储,并在稍后查看时嵌入为YouTube视频。
发布于 2016-07-31 12:25:22
这很简单
^(https?:\/\/)?(www\.)?youtube\.(be|com)稍作解释:
^ -字符串的开始https? - http具有可选的s:\/\/ - ://(www\.)? -可选www.youtube\. - youtube.(be|com) - be或com如果还想匹配youtu.be,请使用以下命令:
^(https?:\/\/)?(www\.)?(youtube\.(be|com)|youtu\.be)发布于 2016-07-31 12:45:23
((?:https?:\/\/)?(?:www.)?youtu(?:\.?be)?\.(?:com|be))包括:
https://www.youtube.com
https://www.youtube.be
http://www.youtube.com
http://www.youtube.be
https://youtube.com
https://youtube.be
http://youtube.com
http://youtube.be
www.youtube.com
www.youtube.be
youtube.com
youtube.be
youtu.be
www.youtu.be
http://www.youtu.be
https://www.youtu.be
http://youtu.be
https://youtu.bePHP:
$re = "/((?:https?:\\/\\/)?(?:www.)?youtu(?:\\.?be)?\\.(?:com|be))/";
$str = "https://www.youtube.com\nhttps://www.youtube.be\nhttp://www.youtube.com\nhttp://www.youtube.be\nhttps://youtube.com\nhttps://youtube.be\nhttp://youtube.com\nhttp://youtube.be\nwww.youtube.com\nwww.youtube.be\nyoutube.com\nyoutube.be\nyoutu.be\nwww.youtu.be\nhttp://www.youtu.be\nhttps://www.youtu.be\nhttp://youtu.be\nhttps://youtu.be\n\n\nbsadf.fds\n\nyoutube\.(be|com)";
preg_match_all($re, $str, $matches);UPD:是的,妮可是对的,但我会改变的:
((?:https?:\/\/)?(?:www\.)?(?:youtube\.(?:be|com)|youtu\.be))https://stackoverflow.com/questions/38683933
复制相似问题