ruby/regex得到每个单词的第一个字母

use*_*254 10 ruby regex

我想每个单词放在一起的第一个字母,使得像"I need help"转进"Inh".我想把一切都关掉,然​​后从那里开始,或者马上抓住每个第一个字母.

hwn*_*wnd 17

你可以在这里简单地使用split,mapjoin.

string = 'I need help'
result = string.split.map(&:first).join
puts result  #=> "Inh"
Run Code Online (Sandbox Code Playgroud)

  • 很抱歉问了一个愚蠢的问题,但这每个部分到底是做什么的? (2认同)
  • s.split 将其转换为数组:['I', 'need', 'help'],map 遍历每个数组块并取其第一个字母。在 s.split.map{|w|w[0]} 的末尾,我们得到 ["I", "n", "h"],并且 .join 将其连接成一个漂亮且干净的字符串。 (2认同)

tri*_*fin 5

正则表达式呢?在这里使用 split 方法会强制关注字符串中不需要解决此问题的部分,然后再执行提取每个单词的第一个字母 (chr) 的步骤。这就是为什么我认为正则表达式更适合这种情况。节点,如果-字符串中有一个或另一个特殊字符,这也将起作用。然后,当然您可以.upcase在末尾添加方法以获得正确的首字母缩略词。

string = 'something - something and something else'

string.scan(/\b\w/).join

#=> ssase