マテリアライズされたパスからアイテムの最後の出現を取得しようとしています。以下は、X、Y、Zを任意の文字列にする例として提供した可能な値のサブセットです。
X/
X/Y/
X/Y/Z/
上記の対応する行に対して以下を出力するphpregexを使用して、パスの最後の項目を選択するにはどうすればよいですか。
X
Y
Z
マテリアライズされたパスからアイテムの最後の出現を取得しようとしています。以下は、X、Y、Zを任意の文字列にする例として提供した可能な値のサブセットです。
X/
X/Y/
X/Y/Z/
上記の対応する行に対して以下を出力するphpregexを使用して、パスの最後の項目を選択するにはどうすればよいですか。
X
Y
Z
$parts = explode('/', trim($url, '/'));
$lastpart = end($parts);
正規表現は必要ありません。しかし、あなたが主張するなら:
#^/?([^/]+)/?$#
パス部分はグループ1にあります。
正規表現ではなく、末尾を削除した後strrpos()
の最後を見つけるために使用します。/
/
$string = "/x/y/";
$string = rtrim($string, "/");
echo substr($string, strrpos($string, "/") + 1);
// y
$string = "/x/y/z/";
// prints
// z
$string = "/x";
// prints
// x
preg_splitとarray_popを選びます:
$test = "a/a/v/";
$test = rtrim($test,'/');
$arr = preg_split('/\//',$test);
$lastelement = array_pop($arr);
var_dump($lastelement);