http://forum.csdn.net/PointForum/Forum/PostTopic.aspx?forumID=c5eca554-e88a-47bd-873d-58c8014f2f91http://wenku.baidu.com/view/19ad3469011ca300a6c390a5.html用正则匹配出红色部分

解决方案 »

  1.   


    <?php
    $str = 'http://forum.csdn.net/PointForum/Forum/PostTopic.aspx?forumID=c5eca554-e88a-47bd-873d-58c8014f2f91';
    $str = 'http://wenku.baidu.com/view/19ad3469011ca300a6c390a5.html';
    $p = '|(http://.*/)|ims';
    if(preg_match($p,$str,$match)){
    print_r($match);
    }
      

  2.   

    $p = '|(\w+://.*/)|ims';//也行
      

  3.   

    Alex_Best 兄 能解释一下,为什么
    $p = '|(\w+://.*/)|ims';//也行
    不需要字符转意思, 为什么这样能匹配到最后一个“/” 而不是第一个“/”恳请解释一下
      

  4.   

    这里没必要转义啊···
    1.为什么匹配到最后一个/而不是第一个?
      你可以用$p = '|(\w+://.*?/)|ims';//试试
       
       ? 非贪婪模式  遇到第一个字符 就匹配停止 不加? 则是贪婪模式 尽量更多的匹配 你可以看看正则的语法
      

  5.   

    if(preg_match("/^[\w+:].*[$\/]/is",$str,$match)){
        print_r($match);
    }