对 Ruby 非常陌生,
file_path = "/.../datasources/xml/data.txt"
如何找到最后两个正斜杠之间的值?在这种情况下,该值是“xml”...我不能使用绝对定位,因为“/”的数量会随着文本而变化,但我需要的值总是在最后两个 / 之间
我只能找到有关如何在字符串中查找特定单词的示例,但在这种情况下,我不知道该单词的值,因此这些示例没有帮助。
file_path.split("/").fetch(-2)
你说你确定它总是在最后两个斜线之间。这会将您的字符串拆分为斜杠数组,然后获取倒数第二个元素。
"/.../datasources/xml/data.txt".split("/").fetch(-2) => "xml"
如果您有 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 = $&