2012-03-21 16 views
0

我期待提取位於「規範ID」,只是在「&型」之前下列URL的一部分的期限屆滿後,該期限後的值:使用正則表達式找到一個網址

http://subdom.someurl.com/cat/motorparts?id=12345 &規範ID = 245038.100006592 &類型= 10 &頁= 0

的數字是變量,以便它們可以在長度波動。

我是一個新手,當談到正則表達式,但任何幫助讓我這樣做會很好。

回答

1

我不是PHP大,但它應該是這個樣子:

preg_match('/specid=\d+\.(\d+)/i', $input, $matches); 

$matches是陣列中存儲的所有比賽。你所追求的價值將在第二個元素中。有關更多信息,請參閱preg_match

我不是100%確定的,但從我可以推斷出的,確保你在模式字符串周圍使用單引號,否則你將不得不避開反斜槓,這使得正則表達式更難以理解是。

+0

太棒了!它像一個魅力。謝謝你的幫助喬。下面是我如何使用它:if(preg_match('/ specid = \ d + \。((\ d +)/ i',$ input,$ matches)) {$ theNumber = $ matches [1];} – 2012-03-21 09:59:07

2

@Quick Joe Smith的正則表達式答案會很好。

你也可以在PHP中使用URL成分的分析中檢索數據,然後使用簡單的 字符串操作

http://codepad.org/9kjggw8U

<?php 
$tokens = array(); 
parse_str("http://subdom.someurl.com/cat/motorparts?id=12345&specid=245038.100006592&type=10&page=0",$tokens); 
var_dump($tokens['specid']); 
?> 
+0

95%那裏的路。 OP只需要'specid'參數的一部分,所以至少需要一個子串。否則,這是一個比正則表達式更強大的解決方案。 – 2012-03-21 09:53:01