次のようなパスを含む文字列があります
/foo/bar/baz/hello/world/bla.html
ここで、最後から 2 番目の からすべてを取得したいと思います。/
つまり、結果は次のようになります。
/world/bla.html
これは正規表現を使用して可能ですか? もしそうなら、どのように?
私の現在の解決策はsplit
、文字列を配列に入れ、最後の 2 つのメンバーを再度結合することですが、これよりも優れた解決策があると確信しています。
次のようなパスを含む文字列があります
/foo/bar/baz/hello/world/bla.html
ここで、最後から 2 番目の からすべてを取得したいと思います。/
つまり、結果は次のようになります。
/world/bla.html
これは正規表現を使用して可能ですか? もしそうなら、どのように?
私の現在の解決策はsplit
、文字列を配列に入れ、最後の 2 つのメンバーを再度結合することですが、これよりも優れた解決策があると確信しています。
あなたもできる
str.split(/(?=\/)/g).slice(-2).join('')
> '/foo/bar/baz/hello/world/bla.html'.match(/(?:\/[^/]+){2}$/)[0]
"/world/bla.html"
正規表現なし:
> var s = '/foo/bar/baz/hello/world/bla.html';
> s.substr(s.lastIndexOf('/', s.lastIndexOf('/')-1))
"/world/bla.html"