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