有关网址的正则表达式看不懂?

pak001 2010-08-04 11:14:38
请问下面有关网址的正则表达式中,([^\.\/]+)和(\/[\w-\.\/\?\%\&\=]*)?这个两个子模式是什么意思呢?有点看不太懂,谢谢!


<?php
$pattern='/(https?|ftps?):\/\/(www)\.([^\.\/]+)\.(com|net|org)(\/[\w-\.\/\?\%\&\=]*)?/i'; //正则表达式
$subject="网址为http://www.lampbrother.net/index.php"; //被搜索字符串

if(preg_match($pattern, $subject, $matches)) { //使用preg_match()函数进行匹配
echo "搜索到的URL为:".$matches[0]."<br>"; //数组中第一个元素保存全部匹配结果
echo "URL中的协议为:".$matches[1]."<br>"; //数组中第二个元素保存第一个子表达式
echo "URL中的主机为:".$matches[2]."<br>"; //数组中第三个元素保存第二个子表达式
echo "URL中的域名为:".$matches[3]."<br>"; //数组中第四个元素保存第三个子表达式
echo "URL中的顶域为:".$matches[4]."<br>"; //数组中第五个元素保存第四个子表达式
echo "URL中的文件为:".$matches[5]."<br>"; //数组中第六个元素保存第五 个子表达式
} else {
echo "搜索失败!"; //如果和正则表达式没有匹配成功则输出此条语句
}
?>

...全文
54 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dleno 2010-08-04
  • 打赏
  • 举报
回复
([^\.\/]+)//一个或多个不是.和/的字符。
(\/[\w-\.\/\?\%\&\=]*)?//括号里是:任意个\w(数字字母下划线).-/?%&=
后面的问号则表示括号里所表示的东西有或没有
CunningBoy 2010-08-04
  • 打赏
  • 举报
回复
([^\.\/]+) 匹配一个或多个非.和/符号
(\/[\w-\.\/\?\%\&\=]*)? 匹配0个或者一个"/adfad./?%&="这样的字符串

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧