1

对 Ruby 非常陌生,

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

如何找到最后两个正斜杠之间的值?在这种情况下,该值是“xml”...我不能使用绝对定位,因为“/”的数量会随着文本而变化,但我需要的值总是在最后两个 / 之间

我只能找到有关如何在字符串中查找特定单词的示例,但在这种情况下,我不知道该单词的值,因此这些示例没有帮助。

4

2 回答 2

3

file_path.split("/").fetch(-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 回答