1

preg_replace パターンの正しいパターンの書き方がわかりません。
私の状況は次のとおりです。URL を取得しました。次のように仮定します。

$url = "first/second/third/fourth"

ここで、最後の「/」とその後のすべての文字のみを削除する必要があります。したがって、私の結果は次のようになります。

first/second/third

この瞬間、私はこのように解決しました:

$result = substr($url, 0, (strrpos($url, "/")));

しかし、preg_replace に書き込むべき正しいパターンがあるはずだとわかっています。
なにか提案を?

4

2 に答える 2

4

あなたが持っているものを使用してください。シンプルで効率的です。括弧を少なくすると、複雑に見えなくなります。

$result = substr($url, 0, strrpos($url, '/'));

正規表現は次のようになります。

$result = preg_replace('#/[^/]*$#', '', $url);

同じくらい長く、少し混乱します。

于 2013-04-20T16:10:28.447 に答える
0

スラッシュに一致し、その後にスラッシュ以外の 0 個以上の文字が続き、その後に文字列の末尾が続きます。

preg_replace("/[^/]*$", "", $url)

または、貪欲ではない一致 ( *?) を使用すると、これも機能するはずです。

preg_replace("/.*?$", "", $url)
于 2013-04-20T16:09:50.563 に答える