1

Ruby を初めて使用する場合、

file_path = "/.../datasources/xml/data.txt"

最後の 2 つのスラッシュの間の値を見つけるにはどうすればよいですか? この場合、その値は「xml」です...「/」の数はテキストと同様に変化するため、絶対配置は使用できませんが、必要な値は常に最後の 2 つの / の間にあります

文字列内の特定の単語を見つける方法の例しか見つけることができませんでしたが、この場合、単語の値がわからないため、これらの例は役に立ちませんでした。

4

2 に答える 2

3

file_path.split("/").fetch(-2)

あなたはそれが常に最後の2つのスラッシュの間にあると確信していると言いました。これにより、文字列がスラッシュで配列に分割され、最後から 2 番目の要素が取得されます。

"/.../datasources/xml/data.txt".split("/").fetch(-2) => "xml" 
于 2012-04-25T21:50:05.760 に答える
0

Ruby 1.9 以降を使用している場合:

if subject =~ 
    /(?<=\/) # Assert that previous character is a slash
    [^\/]*   # Match any number of characters except slashes
    (?=      # Assert that the following text can be matched from here:
     \/      #  a slash,
     [^\/]*  #  followed by any number of characters except slashes
     \Z      # and the end of the string
    )        # End of lookahead assertion
    /x
    match = $&
于 2012-04-25T21:50:51.570 に答える