PHP regex preg_grep更改字符串路径


PHP regex preg_grep change string path

我有一个数组:

$array = array(
    "C:/path/something1/something2/dir",
    "C:/path1/something/something2/dir2'nextdir",
    "C:/path2/something/dir2'nextdir'next",
    "C:/path/something3/something6/something7/dir5'nextdir2'next"
);

最后一个符号"/"之前的一切都随着他消失了。

我想要这样的东西:

$array = array(
    "dir",
    "dir2'nextdir",
    "dir2'nextdir'next",
    "dir5'nextdir2'next"
);

我需要regex

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

我不知道如何写一个正则表达式。

我不想那样:

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

preg_grep()不更改/替换值,它返回与给定正则表达式匹配的项。如果必须使用regex并替换值,请查看preg_replace():

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

array(4) {
  [0]=> string(3) "dir"
  [1]=> string(12) "dir2'nextdir"
  [2]=> string(17) "dir2'nextdir'next"
  [3]=> string(18) "dir5'nextdir2'next"
}