2012-11-29 92 views
3

我的字符串是$text1 = 'A373R12345'
我想查找該字符串的最後一個數字數字出現次數。
所以我用這個正則表達式^(.*)[^0-9]([^-]*)
後來我得到了這樣的結果:
1.A373
2.12345
PHP正則表達式匹配最後一次出現的字符串

但是我預期的結果是:
1.A373R
(它有 'R')
2.12345

又如$text1 = 'A373R+12345'
然後我得到了這樣的結果:
1.A373R
2.12345

但是我預期的結果是:
1.A373R +
(它有 '+')
2.12345

我想包含最後沒有數字號碼!
請幫忙!!謝謝!!

回答

7
$text1 = 'A373R12345'; 
preg_match('/^(.*[^\d])(\d+)$/', $text1, $match); 
echo $match[1]; // A373R 
echo $match[2]; // 12345 

$text1 = 'A373R+12345'; 
preg_match('/^(.*[^\d])(\d+)$/', $text1, $match); 
echo $match[1]; // A373R+ 
echo $match[2]; // 12345 

正則表達式的說明細分:

^ match from start of string 
(.*[^\d]) match any amount of characters where the last character is not a digit 
(\d+)$ match any digit character until end of string 

enter image description here

+0

它工作正常的我situtaion!謝謝!! 你能解釋我的正則表達式嗎?我只知道。* [^ \ d]意思是你要找到最後一個沒有數字的號碼 –

+0

補充說明。 –

+0

謝謝!很好的解釋 ! –

相關問題