获取名字并删除字符串中的其余部分

时间:2016-02-01 15:57:20

标签: ruby string gsub

我正在抓取一个网站的几个名字,我只需要一个名字。 如何删除字符串中的所有内容并输出名字:Veronica

这就是我所知道的,记住这是其他名字。

name = "Name: Veronica Ljunglöf"
name.gsub!("Name: ", '')

4 个答案:

答案 0 :(得分:4)

如果格式看起来一致,您可以这样做:

layer

答案 1 :(得分:1)

我会使用正则表达式:

r = /
    :\s+         # match a colon followed by one or more spaces
    \K           # forget everything matched so far
    [[:alpha:]]+ # match one or more letters
    /x           # extended/free-spacing regex definition mode

'name = "Name: Veronica Lodge"'[r]
  #=> "Veronica"<sup>1</sup>

<子> That's the one Archie is looking at

答案 2 :(得分:0)

你可以......

name.gsub("Name: ", "").split.first

答案 3 :(得分:0)

这是一个更冗长,但也更通用的替代方案。您可以匹配多个模式,并可以将其调整为名字和姓氏(例如)。

"Name: Veronica Ljunglöf".match(/Name: (\w*) \w*/)  #=> #<MatchData "Name: Veronica Ljunglöf" 1:"Veronica"> 

使用MatchData#captures

访问“Veronica”
"Name: Veronica Ljunglöf".match(/Name: (\w*) \w*/).captures #=> ["Veronica"] 

进行第一次(也是唯一一次)捕获

"Name: Veronica Ljunglöf".match(/Name: (\w*) \w*/).captures.first #=> "Veronica"