0
所以我有一個字符串(即動態的)。這是$網址..現在的URL字符串有時是這樣的: http://site.com/blah123preg_match可能帶有問號的URL
或
http://site.com/blah123?blahblah
現在我已經做它
preg_match("/site.com\/(.*)/",$info[url],$matches);
$gethash = $matches[1];
,但它被揭去當有一個?標記語句後綴。
如何獲得斜線(/)和問號之間的所有內容,當出現問號時,但是當不存在問號時,只需在斜槓後面抓取所有內容(/)
僅供參考,這樣做是因爲正則表達式引擎試圖抓住儘可能多的字符可能(這是貪婪)。 「。」字符匹配任何字符,所以正則表達式引擎會繼續到字符串的末尾。通過告訴它不匹配問號,它會匹配,直到它不再匹配爲止,並在匹配文本中包括問號之前停下來。 – thirdender 2012-07-21 05:00:13
這根本不起作用。 – 2012-07-21 05:00:30
我認爲你可能需要跳過問號,因爲它在正則表達式中是特殊的,所以你會這樣做:'/site\\.com\\/([^\\?]*)/' – Alex 2012-07-21 05:09:12