次の形式の文字列がたくさんあります。最後の「/」の後の部分だけが異なります。
"http://www.google.com/calendar/feeds/user_name%40gmail.com/public/basic/_8gq3ecpo6gp3ib9n8h0jeb9k8l13ab9o85346b9k8gqk4g9h74s4aea26s"
最後の「/」以降の部分だけをキャプチャする必要があります。
どんな助けでも大歓迎です。
str.split('/').last
あなたの文字列はどこstr
ですか
不要な場合は正規表現を使用しないでください
s = "http://www.google.com/calendar/feeds/user_name%40gmail.com/public/basic/_8gq3ecpo6gp3ib9n8h0jeb9k8l13ab9o85346b9k8gqk4g9h74s4aea26s"
s.split('/').last # => "_8gq3ecpo6gp3ib9n8h0jeb9k8l13ab9o85346b9k8gqk4g9h74s4aea26s"
/
他の回答に示されているように、文字列を分割するのは1つの方法です。
URLは基本的にファイル名であるため、次を使用することもできます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をそのまま扱い、それを行うように設計されたツールを使用してURLを分解することです。
require 'uri'
uri = URI.parse("http://www.google.com/calendar/feeds/user_name%40gmail.com/public/basic/_8gq3ecpo6gp3ib9n8h0jeb9k8l13ab9o85346b9k8gqk4g9h74s4aea26s")
File.basename(uri.path)
=> "_8gq3ecpo6gp3ib9n8h0jeb9k8l13ab9o85346b9k8gqk4g9h74s4aea26s"
ただし、逆の方法で行うのは非常に簡単で、通常は安全です。