2014-11-02 31 views
0

有沒有一種簡單的方法來獲取preg_replace只捕獲字符串中最後一串數字?我會傳遞'df14','asd32','5ds3'等東西,我希望它只返回'14','32'和'3'。preg_replace捕獲PHP中的最後一串數字

如果數字前面總是隻有非數字,但是有時候數字前面的字符串可以包含最後一個數字前面的數字(如中的「/ \ D +(\ d +)/上面的'5ds3'的情況)。然而,數字前面的字符串永遠不會以數字結尾。

任何想法?

+0

'$海峽=的preg_replace( '/.*(\ d +)$ /', '$ 1',$海峽);' – Cheery 2014-11-02 23:53:13

+0

不,這並不在所有的工作。我通過preg_replace傳遞一個包含g1,g2,g3,g4,g5等數組,並獲得: array(1){[0] => string(1)「0」} array(2){[ 0] => string(1)「0」[1] => string(1)「1」} array(3){[0] => string(1) (0)=> string(1)「1」[1] => string(1)「0」[2] => string(1)「0」[3] => string(1)「1」} array(5){[0] => string(1)「1」[1] => string(1) 2] => string(1)「0」[3] => string(1)「0」[4] => string(1)「2」} array(6){[0] => string(1) 「2」[1] => string(1)「1」(等等) – 2014-11-03 00:01:02

+0

您應該提到您提交了一個數組而不是數組循環中的元素。即使對陣列,我也沒有看到任何問題。準確顯示您用作輸入數據的內容。 – Cheery 2014-11-03 00:05:09

回答

0

你可以試試這個:

即使陣列它按預期工作
preg_match('/.*(\d+)$/',...); 
1

。顯示數據時,你有

$test = array(
'23g1', 'g2', 'g34', 'g4', 'g5', '3mmo' 
); 

var_dump(preg_replace('/.*(\d+)?$/U', '$1', $test)); 
相關問題