删除一些字符后的所有内容

时间:2017-03-31 18:14:56

标签: ruby string methods

我有两种情况:

在第一篇文章中,我可能会有一个字符串:

  Posted 03-20-2017 More info Go to Last Post

我可能会有一个字符串:

  Posted today More info Go to Last Post

在这两种情况下,我都不想要更多信息......

我尝试使用gsub,但它并不适用于这两种情况。有没有人有可能的解决方案?

2 个答案:

答案 0 :(得分:1)

使用Ruby sub,它将为您提供副本第一次出现的替代第二个参数的模式

所以它会取整个字符串"Posted 03-20-2017 More info Go to Last Post",找到你的模式以及More info...之后的所有内容,并将其替换为第二个参数More info,即这种情况与第一种情况相同(您可以在那里使用变量)。

"Posted 03-20-2017 More info Go to Last Post".sub /More info.*/, 'More info'
=> "Posted 03-20-2017 More info"

gsub也以类似的方式工作。

答案 1 :(得分:1)

通过在字符串上运行split("More info")可以相对轻松地完成此操作。这样做会将字符串分解为如下所示的数组:

new_string  = "Posted today More info Go to Last Post"
new_string = new_string.split("More info")
# becomes ["Posted today ", " Go to Last Post"]

分裂的作用是将字符串分成一个数组,其中每个元素都在参数之前。因此,如果您有"1,2,3",则split(",")将返回[1, 2, 3]

因此,要继续您的解决方案,您可以获得这样的发布日期:

new_string[0].strip

.strip删除字符串前面或后面的空格,因此您只需留下"Posted today"