2013-12-11 67 views
1

我想將字符串格式化爲序列號。我想得到類似的東西: AAAAA-BBBBB-CCCCC-DDDDD帶有字母數字字符(0-9ABCDEF)。將字符串格式化爲序列號

到目前爲止,我試圖創建一個正則表達式來實現這一點,但我不知道我應該如何處理這個問題。這是我做的代碼:

$output = preg_replace('[0-9ABCDEF]{5}[0-9ABCDEF]{5}[0-9ABCDEF]{5}[0-9ABCDEF]{5}', '$1-$2-$3-$4', $input);

這是非常基本的,但我不能讓它工作。

$input包含原始字符串;例如A47D2F771AC412BADC4F(20個字符長)。

在此先感謝您的寶貴幫助。

回答

3

你忘了團體。

preg_replace('([0-9A-F]{5})([0-9A-F]{5})([0-9A-F]{5})([0-9A-F]{5})', ... 
#   ^   ^^   ^^   ^^   ^
+0

謝謝,它的工作原理! – Manitoba

2

試試這個非正則表達式的方法,並保存自己頭疼:

$pieces = str_split($input, 5); 

$formatted_input = implode("-", $pieces); 
+0

我認爲這也是更快 –