^(http:\/\/)? => http://
([^\/]+)  => www.php.net

解决方案 »

  1.   

    ([^\/]+)  => www.php.net
    ------------------------------------
    我太笨,不理解。
    这个不是用来匹配“/index.html”的吗?
      

  2.   

    ("/^(http:\/\/)?([^\/]+)/1 ^(http:\/\/)?这个表示以http://开头(可有可无)
    2 ([^\/]+)这个表示匹配除过/的所有字符 至少匹配一次.
    2放在1后面明白是什么意思不?^放在 []里是除过后面字符的意思.
    放[]外才是开头的意思.
      

  3.   

    那个问号是说前面的括号中的可能没有,就是说http://可能没有
      

  4.   

    试一下把0改成+匹配这个:"www.php.net/index.html"
      

  5.   

    ([^\/]+)的意思是除/之外的任何字符,用来匹配www.php.net的,至于后面的/index.html压根没被PHP瞧上一眼,因为preg_match()只要找到一个匹配就停止了。