如何在Ruby中用字符串切出一个单词?

A.V*_*rno 0 ruby string

这是我的代码:

query = "This is a good life"
=> "This is a good life"
query.slice!("is")
=> "is"
query
=> "Th is a good life"
Run Code Online (Sandbox Code Playgroud)

我想要做的是只在片段是一个单词时才切片,而不是另一个单词的一部分.

  • 切片(" is ")不会在前一个和后一个单词之间留下空格,也不会对字符串的第一个或最后一个单词起作用.
  • ("is ")或者(" is")不保证片段不是单词的一部分.

Car*_*and 6

[编辑:读者,请参阅@Stefan的评论.他是完全正确的.我所拥有的外观和角色类是不必要的; 所有需要的都是\b"是"的每一面.这里有一个教训,我认为:当人们想要在Ruby中做一些相当普遍的事情,比如替换文本中的单词时,可能有一种方法可以用最少的麻烦和麻烦来做到这一点.]

如果您打算处理英语的完整性,这不是一个简单的问题.这是您可能想要适应的方法:

query = "This is a good life, it is; yes, indeed it is!"

query.gsub(/(?<=\b|[;:-])is(?=\b|[.?!])/i,'')
  => "This  a good life, it ; yes, indeed it !"
Run Code Online (Sandbox Code Playgroud)

在正则表达式中,(?<=\b|[;:-])是一个"积极的看法"; (?=\b|[.?!])是一个"积极前瞻".