2013-05-08 115 views
0

我想格式化一些號碼牌 - 我需要查找字符串中的最後一位數字並在其後添加空格,例如,查找字符串中最後一位數字的位置

T4MAX = T4 MAX 
T53TES = T53 TES 

我假設我將不得不使用的preg_replace - 我已經試過下面找到最後一位數字的字符串中的位置,但它返回一個空數組。

preg_match('/(0-9])/', $plate, $matches, PREG_OFFSET_CAPTURE); 

任何想法?

回答

3

這很簡單:

$str = 'T4MAX'; 

$str_with_space = preg_replace('~\d(?=\D*$)~', '$0 ', $str); 

在線演示:http://ideone.com/Mqqqsh

正則表達式的解釋:

~\d(?=\D*$)~表現手法 - 以後內容的任何數字\d是一個不能用的末尾一個數字\D串。

+0

謝謝 - 完美的工作,如果我想切換它,所以在第一個數字前加一個空格,我該怎麼做? – Ryan 2013-05-08 23:47:34

+0

@Ryan Pilbeam:'(?<=^\ D *)\ d' - 這是一個正則表達式 – zerkms 2013-05-08 23:49:44

+0

我試過這樣做: 'var_dump(preg_replace('〜(?<=^\ D *) \ d〜','$ 0',$ plate));' 但是,假設我做錯了什麼,我得到這個錯誤:編譯失敗:lookbehind斷言不是固定長度在偏移量8 – Ryan 2013-05-08 23:57:16

相關問題