[請益] 請教關於網址的正規表示法問題

作者: 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