2015-10-15 64 views
-2

我正在循環訪問一個數組,並且有多個條目可以像這樣返回。來自複雜字符串的PHP解析數

llll-aaaa-dddd.zzzz-124 
xxd98sss-61 
fff.sss-ddx-74 

我需要在PHP的方式在每次迭代的最後衝刺後,解析出最後一個號碼,讓我可以在另一個函數調用中使用它。

這些條目可能有其他的破折號,其他數字等......但最後一個數字總是有一個連字符,然後是數字。連字符後面只需要完整的最後一個數字。

任何正則表達式的大師能夠伸出援手嗎?

+2

在短劃線上爆炸,得到數組的最後一個元素 – 2015-10-15 04:06:51

+0

我認爲'。* - (\ d +)'會做到這一點。負數和中間數字會有問題。 – chris85

回答

1

這是一個簡單的正則表達式,幾乎不需要上師。

preg_match('/-(\d+)$/', $line, $match); 
$num = $match[1]; 

\d+匹配的數字序列,並$所述字符串的末尾匹配。圓括號定義了一個捕獲組,並且$match[1]包含該組的內容。

+0

謝謝,這完美的工作! – superm

0

已嘗試過preg_match("/(\d*)$/", $input_line, $output_array)。它返回字符串末尾的數字

preg_match("/(-\d*)$/", $input_line, $output_array);。這會返回最後的數字以及大肆宣傳「 - 」。