3 つ以上出現する場合は、最後のスラッシュを置き換える必要があります。このようなパスがある場合"/foo/bar/"
、それは になるはず"/foo/bar"
です。ただし、次のようなパスに"/foo/"
は触れないでください。
エスケープされたスラッシュ ( \/
) と量指定子 ( {3,}
)で試してみました。
/\/{3,}$/
ただし、この正規表現は、スラッシュの直後にあるスラッシュのみに一致します。"/foo/bar///"
この問題を解決する方法はありますか? 多分正/負lookahead
で?
視覚化するには:
"/foo/" => "/foo/"
"/foo/bar/" => "/foo/bar"
"/foo/bar/baz/" => "/foo/bar/baz"
Fede、Avinash Raj、Amal Muraliに感謝します。パフォーマンスは重要なので、@Fede が勝者です: http://jsperf.com/match-last-slash-if-there-are-at-least-nth-occurrences