作者acidjazz (...........)
看板PHP
标题[请益] 请教关於网址的正规表示法问题
时间Mon Jan 4 17:37:43 2016
有一个取domain name的简单范例如下:
<?php
$pettern = '/^http\:\/\/(.+)\/(.*)/i';
$subject = "
http://www.php.net/index.html";
preg_match($pettern, $subject, $match);
$host = $match[1];
preg_match('
/[^.]+\.[^.]+$/', $host, $match);
echo 'the domain name is : '. $match[0];
?>
最近刚碰正规表示法,其中上面标色的那段一直无法参透
目前只知道是取
[^.]+\.[^.]+为结尾的字串,得到一个xxx.xxx的字串
最後会从www.php.net变成php.net,
但
[^.]+ 这串实在无法了解
我的理解,小数点是指一个任意字元,^是指not,但後面又加了+
组合在一起变成 "至少有一个以上的非任意字元" 就完全不懂了@@
希望板上的前辈可以帮忙指点一下,万分感谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 175.180.119.53
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PHP/M.1451900267.A.5B5.html
2F:→ Neisseria: 在 character class 中的 dot 只是 dot,非任意字元 01/04 17:44
3F:→ tracetw: 查表啊 01/04 18:03
5F:→ guanting886: 这工具应该会很清楚 01/04 18:22
6F:→ acidjazz: 谢谢各位先进的解答~这个网站好酷!! 01/04 19:33
7F:→ acidjazz: 下次会多翻翻N大的给的文件跟玩玩regex,真的好感谢>< 01/04 19:34