Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays Ruby过滤器,用于在聊天室中搜索消息(用重复值填充数组)_Arrays_Ruby_String - Fatal编程技术网

Arrays Ruby过滤器,用于在聊天室中搜索消息(用重复值填充数组)

Arrays Ruby过滤器,用于在聊天室中搜索消息(用重复值填充数组),arrays,ruby,string,Arrays,Ruby,String,在聊天室里,我曾经是两个生活在一起的巨魔,我无法把他们移开,我也厌倦了听他们的歌。我写了一个代码,把巨魔的信息变成青蛙的声音 像这样“你是肮脏的混蛋。猴子代码。瘸子。”=>“咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜” 为此,我使用了一些代码,并通过croak以某种详细的方式x.chars.zip(%w{c r o a k}.cycle).map{x,y | y}.join来填充巨魔的单词如何更简洁地用重复值填充数组? 以下是我正在使用的代码: def troll_filter message

在聊天室里,我曾经是两个生活在一起的巨魔,我无法把他们移开,我也厌倦了听他们的歌。我写了一个代码,把巨魔的信息变成青蛙的声音

像这样<代码>“你是肮脏的混蛋。猴子代码。瘸子。”=>“咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜咕噜”

为此,我使用了一些代码,并通过
croak
以某种详细的方式
x.chars.zip(%w{c r o a k}.cycle).map{x,y | y}.join
来填充巨魔的单词如何更简洁地用重复值填充数组?

以下是我正在使用的代码:

def troll_filter message
    message.split(" ")
    .map{ |x| 
        x.chars.zip(%w{c r o a k}.cycle).map{|x,y| y}.join 
    }.join(" ")
end

p troll_filter "sucks sucks" # "croak croak"
我可能只会修改文本,而不是标点符号。此外,无需
映射
-只需知道
大小

def troll_filter(message)
  message.gsub(/\p{Word}+/) { |x| "croak".each_char.cycle.take(x.size).join }
end

# => "cro cro croak croak. croakc croa. croak."

请记住,
\w
仅等于
[a-zA-Z0-9.]
。如果您想捕获其他字符,您可能需要考虑使用<代码> [[:AlnUn:] ] < /COD>。这还可以捕获非ascii字符,如
é
。因此,将正则表达式更改为
/[:alnum:]+/
。见: