1

次の形式の文字列がたくさんあります。最後の「/」の後の部分だけが異なります。

"http://www.google.com/calendar/feeds/user_name%40gmail.com/public/basic/_8gq3ecpo6gp3ib9n8h0jeb9k8l13ab9o85346b9k8gqk4g9h74s4aea26s"

最後の「/」以降の部分だけをキャプチャする必要があります。

どんな助けでも大歓迎です。

4

3 に答える 3

6

str.split('/').lastあなたの文字列はどこstrですか

于 2012-12-12T14:42:16.000 に答える
3

不要な場合は正規表現を使用しないでください

s = "http://www.google.com/calendar/feeds/user_name%40gmail.com/public/basic/_8gq3ecpo6gp3ib9n8h0jeb9k8l13ab9o85346b9k8gqk4g9h74s4aea26s"

s.split('/').last # => "_8gq3ecpo6gp3ib9n8h0jeb9k8l13ab9o85346b9k8gqk4g9h74s4aea26s"
于 2012-12-12T14:42:43.700 に答える
3

/他の回答に示されているように、文字列を分割するのは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"

ただし、逆の方法で行うのは非常に簡単で、通常は安全です。

于 2012-12-12T15:00:11.533 に答える