如何从链接@中提取文本?

时间:2016-06-26 18:01:15

标签: ruby-on-rails ruby ruby-on-rails-4

我想从

中提取一些文字
@post.link

代表。 " http://test.com/c/849324"

我使用此代码读取/ c /

之后的链接
@v = @post.link.read(/c/)

但我收到此错误

undefined method `read' for

对于这种情况,可能不是正确的方法

编辑: 我想得到' 849324'来自" http://test.com/c/849324"

2 个答案:

答案 0 :(得分:0)

尝试@post.link.split('/c/').last

答案 1 :(得分:0)

  

你可以直接通过字符串索引使用regexp。

first_group = string[/text(grp)/, 1] # get content of captured group

来自:https://github.com/bbatsov/ruby-style-guide#regular-expressions

使用irb的示例:

irb(main):002:0> require 'uri'
=> true
irb(main):003:0> URI("http://test.com/c/849324").path
=> "/c/849324"
irb(main):004:0> URI("http://test.com/c/849324").path[/^\/c\/(.*)/, 1]
=> "849324"

答案:

URI("http://test.com/c/849324").path[/^\/c\/(.*)/, 1]