$str='1:a出勤:10点30分,2:b出勤:16点30分,3:c出勤:8点30分,4:d出勤:11点10分'正则取出 'b出勤' 的时间 并 替换 应该怎么做呢?(时间不固定).  谢谢

解决方案 »

  1.   


    preg_match('/b出勤:([^,]*),/',$str,$arr);
    echo $arr[1];
      

  2.   

    谢谢,但是我意思不是这样。
    我想的是 直接替换掉 字符串的 时间内容。
    这个方法 缺少了出勤前 数据,
    虽然查找出来还可以使用 $arr[1]=替换数据 
    用str_replace替换.
    我想要的是一步
    $str='1:a出勤:10点30分,2:b出勤:16点30分,3:c出勤:8点30分,4:d出勤:11点10分'
    b出勤 替换
    $str='1:a出勤:10点30分,2:b出勤:8点20分,3:c出勤:8点30分,4:d出勤:11点10分'
      

  3.   

    不可以直接使用 preg_replace 吗?
      

  4.   

    echo preg_replace('/(b出勤:)([^,]*)/','${1}8点20分',$str);//这样试试
      

  5.   

    非常谢谢你 jordan102 。
    成功了, 原来 ${1} 是这样的用法啊。 学到了。