2017-10-04 43 views
-2

我正在處理一個小的腳本,它從URL中抽取兩個值。您可以在下面的代碼中看到一個示例網址,我試圖提取兩位數的「i =」值和較長的「l =」值。在PHP中提取正則表達式數組索引

我做了一些廣泛的搜索關於這一點,所有其他關於堆棧溢出的問題似乎非常簡單。

我敢肯定,我超近,但最終我是一個Python/Django的傢伙,我很茫然,爲什麼下面的代碼不工作:

$s = "http://mwo.smurfy-net.de/mechlab#i=16&l=71a1896409db5818783971b72ba043f5f3a44fad"; 
$matches = array(); 
$result = preg_match('/^i=(?P<iVal>[0-9]+)&l=(?P<lVal>[a-z0-9]+)$/siU', $s, $matches); 
echo $matches['iVal']; 
echo $matches['lVal']; 

當我執行獲取有關兩個數組值iVal和lVal未定義的錯誤。

我不確定問題是否與代碼本身或我的正則表達式。任何幫助,將不勝感激。

+0

''^斷言在該行的開始時的位置。使用'i =(?P [0-9] +)&l =(?P [a-z0-9] +)'沒有'U'標誌。我說這只是爲了防止在'l'之後添加另一個變量 – ctwheels

回答

0

除去插入符號:

$result = preg_match('/i=(?P<iVal>[0-9]+)&l=(?P<lVal>[a-z0-9]+)$/siU', $s, $matches); 
//    here ___^