[请益] 请教关于网址的正规表示法问题

楼主: acidjazz (...........)   2016-01-04 17:37:43
有一个取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,但后面又加了+
组合在一起变成 "至少有一个以上的非任意字符" 就完全不懂了@@
希望板上的前辈可以帮忙指点一下,万分感谢!
作者: Neisseria (Neisseria)   2016-01-04 17:44:00
http://php.net/manual/en/regexp.reference.dot.php在 character class 中的 dot 只是 dot,非任意字符
作者: tracetw (((o(*゚▽゚*)o)))   2016-01-04 18:03:00
查表啊
作者: guanting886 (Guanting)   2016-01-04 18:21:00
https://regex101.com/ 自己玩玩这工具应该会很清楚
楼主: acidjazz (...........)   2016-01-04 19:33:00
谢谢各位先进的解答~这个网站好酷!!下次会多翻翻N大的给的文件跟玩玩regex,真的好感谢><
作者: MOONRAKER (㊣牛鹤鳗毛人)   2016-01-05 16:45:00

Links booklink

Contact Us: admin [ a t ] ucptt.com