我有一个数组:
$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"
}