我有以下格式的许多字符串。只有最后一个“/”之后的部分是不同的......
"http://www.google.com/calendar/feeds/user_name%40gmail.com/public/basic/_8gq3ecpo6gp3ib9n8h0jeb9k8l13ab9o85346b9k8gqk4g9h74s4aea26s"
我只需捕获最后一个“/".
之后的部分感谢任何帮助。
答案 0 :(得分:6)
str.split('/').last
其中str
是您的字符串
答案 1 :(得分:3)
不必要时不要使用正则表达式
s = "http://www.google.com/calendar/feeds/user_name%40gmail.com/public/basic/_8gq3ecpo6gp3ib9n8h0jeb9k8l13ab9o85346b9k8gqk4g9h74s4aea26s"
s.split('/').last # => "_8gq3ecpo6gp3ib9n8h0jeb9k8l13ab9o85346b9k8gqk4g9h74s4aea26s"
答案 2 :(得分:3)
在/
上拆分字符串是一种方式,如其他答案所示。
网址基本上是文件名,因此您也可以使用File.basename
:
File.basename('http://example.com/foo')
=> "foo"
或者,在您的情况下:
File.basename("http://www.google.com/calendar/feeds/user_name%40gmail.com/public/basic/_8gq3ecpo6gp3ib9n8h0jeb9k8l13ab9o85346b9k8gqk4g9h74s4aea26s")
=> "_8gq3ecpo6gp3ib9n8h0jeb9k8l13ab9o85346b9k8gqk4g9h74s4aea26s"
从技术上讲,正确的方法是将URL视为原样,并使用专门设计的工具将其拆分:
require 'uri'
uri = URI.parse("http://www.google.com/calendar/feeds/user_name%40gmail.com/public/basic/_8gq3ecpo6gp3ib9n8h0jeb9k8l13ab9o85346b9k8gqk4g9h74s4aea26s")
File.basename(uri.path)
=> "_8gq3ecpo6gp3ib9n8h0jeb9k8l13ab9o85346b9k8gqk4g9h74s4aea26s"
但是,以另一种方式做这件事非常简单,而且通常是安全的。