Php 将字符串格式化为序列号
我想把字符串格式化成序列号。我想得到这样的东西:Php 将字符串格式化为序列号,php,regex,Php,Regex,我想把字符串格式化成序列号。我想得到这样的东西: AAAAA-BBBBB-ccccccc-DDDDD带有字母数字字符(0-9ABCDEF) 到目前为止,我已经尝试创建一个正则表达式来实现这一点,但我不知道该如何处理。以下是我编写的代码: $output=preg_replace('[0-9ABCDEF]{5}[0-9ABCDEF]{5}[0-9ABCDEF]{5}','$1-$2-$3-$4',$input) 这很基本,但我不能让它工作 $input包含原始字符串;例如A47D2F771AC41
AAAAA-BBBBB-ccccccc-DDDDD
带有字母数字字符(0-9ABCDEF
)
到目前为止,我已经尝试创建一个正则表达式来实现这一点,但我不知道该如何处理。以下是我编写的代码:
$output=preg_replace('[0-9ABCDEF]{5}[0-9ABCDEF]{5}[0-9ABCDEF]{5}','$1-$2-$3-$4',$input)代码>
这很基本,但我不能让它工作
$input
包含原始字符串;例如A47D2F771AC412BADC4F
(20个字符长)
提前感谢您的宝贵帮助。您忘记了分组
preg_replace('([0-9A-F]{5})([0-9A-F]{5})([0-9A-F]{5})([0-9A-F]{5})', ...
# ^ ^^ ^^ ^^ ^
你忘了分组
preg_replace('([0-9A-F]{5})([0-9A-F]{5})([0-9A-F]{5})([0-9A-F]{5})', ...
# ^ ^^ ^^ ^^ ^
试试这种非正则表达式的方法,省得自己头疼:
$pieces = str_split( $input, 5 );
$formatted_input = implode("-", $pieces);
试试这种非正则表达式的方法,省得自己头疼:
$pieces = str_split( $input, 5 );
$formatted_input = implode("-", $pieces);
我觉得这更快了我觉得这也更快了