Ruby从字符串中删除第一个单词

时间:2013-03-25 11:16:28

标签: ruby string

我很难找到解决方案。如何从字符串中删除第一个单词,如下面的字符串。

     "i am going to school"

     "he is going to school"

     "she is going to school" 

     "they are going to school"

所以string可以是任何字符串,不知道第一个单词的确切长度。但只想删除第一个单词。

结果应如下所示

      "am going to school"

     "is going to school"

     "is going to school" 

     "are going to school"

任何帮助?

由于

4 个答案:

答案 0 :(得分:23)

"i am going to school".split(' ')[1..-1].join(' ')

=> "am going to school"

你可以在ruby中的数组中使用两种方式,因此-1是最后一个元素。

答案 1 :(得分:9)

'she is going to school'[/(?<=\s).*/] => "is going to school"

这使用Ruby的积极外观锚:

  

(?&lt; = pat) - 正面的后观断言:确保前面的   字符匹配pat,但不包括那些字符   匹配的文字

因此模式会查找空格字符,后跟任意字符串。由于重复(例如“*”)是贪婪的,它选择最长的匹配字符串。

答案 2 :(得分:1)

使用regexp

str = "i am going to school"
puts str.gsub(/^(\w\s+)(.*)/, '\2')

=> "am going to school"

答案 3 :(得分:1)

为每个字符串执行此操作:

string.sub(/\s*[\w']+\s+/, "")