正则表达式

432345 2015-04-16 11:56:55
现在要实现下面这个功能:
如何000893993c8240c0ab61ab85d1bbfd5e变成00089399-3c82-40c0-ab61-ab85d1bbfd5e
用正则表达式怎么实现?
...全文
125 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
432345 2015-04-16
  • 打赏
  • 举报
回复
引用 2 楼 xuzuning 的回复:
$s = '000893993c8240c0ab61ab85d1bbfd5e';
echo preg_replace('/(?<=.{8})(.{4})/', '-$1', $s, 4);
00089399-3c82-40c0-ab61-ab85d1bbfd5e
版主果然牛逼。这个看起来不是很懂啊。。。好简洁。
xuzuning 2015-04-16
  • 打赏
  • 举报
回复
$s = '000893993c8240c0ab61ab85d1bbfd5e';
echo preg_replace('/(?<=.{8})(.{4})/', '-$1', $s, 4);
00089399-3c82-40c0-ab61-ab85d1bbfd5e
432345 2015-04-16
  • 打赏
  • 举报
回复
$name = preg_replace("/(\w{8})(\w{4})(\w{4})(\w{4})(\w{12})/", "\\1-\\2-\\3-\\4-\\5", "000893993c8240c0ab61ab85d1bbfd5e");
自己实现了。。这个应该可以了。
xuzuning 2015-04-16
  • 打赏
  • 举报
回复
(?<=.{8}) 表示从8个字符以后开始,即跳过8个字符 (.{4}) 表示匹配4个字符 '-$1' 替换成,$1 就是你的 \\1,写成 $1 看上去是不是清晰点? 最后的 4 表示只替换 4 次

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧