将字符串格式化为序列号

时间:2013-12-11 10:15:45

标签: php regex

我想将字符串格式化为序列号。我想得到类似的东西: 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个字符长)。

提前感谢您的宝贵帮助。

2 个答案:

答案 0 :(得分:3)

你忘记了小组。

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

答案 1 :(得分:3)

尝试这种非正则表达式方法,让自己头疼:

$pieces = str_split( $input, 5 );

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