dqy27359 2015-09-25 00:26
浏览 81
已采纳

PHP正则表达式preg_grep更改字符串路径

I have array:

$array = array(
    "C:/path/something1/something2/dir",
    "C:/path1/something/something2/dir2
extdir",
    "C:/path2/something/dir2
extdir
ext",
    "C:/path/something3/something6/something7/dir5
extdir2
ext"
);

All that is before the last sign "/" with him to disappear.

I want something like that:

$array = array(
    "dir",
    "dir2
extdir",
    "dir2
extdir
ext",
    "dir5
extdir2
ext"
);

I need regex

$new_array = preg_grep("/regex/", $array);

I have no idea how to write a regex.

I dont want like that:

foreach($array as $key => $val) {
    $e = explode("/", $val);
    $new_array[] = end($e);
}
  • 写回答

1条回答 默认 最新

  • dongran1779 2015-09-25 00:42
    关注

    preg_grep() does not change/replace the values, it returns the items that match the given regular expression. If you must use regex and replace the values, take a look at preg_replace() instead:

    $array = preg_replace('~.*/~', '', $array);
    var_dump($array);
    

    Output

    array(4) {
      [0]=> string(3) "dir"
      [1]=> string(12) "dir2
    extdir"
      [2]=> string(17) "dir2
    extdir
    ext"
      [3]=> string(18) "dir5
    extdir2
    ext"
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器