ruby将选定的整个单词括在括号中

ast*_*nic 1 ruby regex string

@string = "Sometimes some stupid people say some stupid words"

@string.enclose_in_brackets("some") # => "Sometimes {some} stupid people say {some} stupid words"
Run Code Online (Sandbox Code Playgroud)

该方法应该如何包围_in_brackets?请记住,我只想附上整个单词,(我不想要"{Some}次{some}愚蠢....","有时"单词应保持不变

Jim*_*dra 5

它只是使用正则表达式的字符串替换.您可以使用单词boundary特殊字符来防止它在您的参数位于另一个单词的中间时与其匹配.并将您的方法放在String类中,以便您可以直接在类似于示例的字符串上调用它.

class String
  def enclose_in_brackets(selection)
    self.gsub(/(\b#{selection}\b)/i, '{\1}')
  end
end

'Sometimes some stupid people say some stupid words'.enclose_in_brackets('some')
# Sometimes {some} stupid people say {some} stupid words.
Run Code Online (Sandbox Code Playgroud)