php
  • regex
  • 2011-07-09 66 views 2 likes 
    2

    如何找到一個正則表達式,可以找我只有網址的那些增值經銷商,PHP的正則表達式來查找位於空格之前

    基本上沒有在URL後總是空白。

    $var1 = 'http://www.asdasgdst.com/thebook.html Result: chosen nickname "doodoo"; success (from first page)'; 
    
    $var2 = 'http://adfhdfdfcvxn.com/blog/2008/12/28/beginnings/comment-page-1/#comment-8203 Result: chosen nickname "zvika"; success (from first page);'; 
    
    $var3 = 'http://sdfsd.sdfjstestgg.com/453980.html?mode=reply Result: chosen nickname "sharon"; success; not working;'; 
    
    $var4 = 'http://www.yuuyok.net/index.php?sub=community&site=posts&thread_id= Result: chosen nickname "kelly"; success (from first page);'; 
    
    +0

    如果有一個在** URL中的空間**? – Johnsyweb

    +2

    應該是'%20' –

    回答

    1

    嘗試:

    '/(^http.*?)\s/' 
    

    ,直到空白髮現

    3

    如果所有的字符串看起來像後來乾脆這應該與所有被以http字符串:

    /^([^ ]*)/ 
    
    2

    您可以使用explode這個,這將更有效率NT。

    $url = array_pop(explode(" ", $var1, 1)); 
    
    1

    我認爲這將這樣的伎倆:

    preg_match('~^(http://.*?) Result:~', $var1, $match); 
    $url = $match[1]; 
    
    +0

    謝謝大家,你一直很好的幫助 –

    1

    我會去:

    preg_match('/(http:[^ ]+)/s', $var, $arr); 
    $url = $arr[0]; 
    

    公正的情況下VAR是不是以http

    此外,爲了測試它,你可以嘗試這個正則表達式(或任何其他):

    (http:[^ ]+) 
    

    在:http://www.regextester.com/

    相關問題