Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.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
Ruby';获取';它可以在多行上工作_Ruby_Gets - Fatal编程技术网

Ruby';获取';它可以在多行上工作

Ruby';获取';它可以在多行上工作,ruby,gets,Ruby,Gets,使用IRB,我想输入一个多行字符串,以便从中删除某些字符。“gets”只允许一行-多行是否有类似的函数 ASCII_project.rb(main):002:0* puts = "What's the text you want to strip?" => "What's the text you want to strip?" ASCII_project.rb(main):003:0> str = gets 我现在想粘贴一段文字,因为新的行不起作用。这就是我想收集多行数据的原因

使用IRB,我想输入一个多行字符串,以便从中删除某些字符。“gets”只允许一行-多行是否有类似的函数

ASCII_project.rb(main):002:0* puts = "What's the text you want to strip?"
=> "What's the text you want to strip?"
ASCII_project.rb(main):003:0> str = gets
我现在想粘贴一段文字,因为新的行不起作用。这就是我想收集多行数据的原因

这是密码

# encoding: CP850
puts = "What's the text you want to strip?"
str = gets
str.gsub!(/\P{ASCII}/, '')
puts str

你可以用下面的方法来做

$/ = "END"  
user_input = STDIN.gets
puts user_input
确保在您认为输入已完成时键入END关键字


同样,这只适用于实际解释器而不是irb。

您可以使用此方法,它接受文本直到第一个空行

def multi_gets all_text=""
  while (text = gets) != "\n"
    all_text << text
  end
  all_text
end
def multi_获取所有_文本=“”
而(text=get)!=“\n”

所有文本
str=您可以像这样在
$stdin
上使用
readlines()

> $stdin.readlines
Mit Wohnungen, mit Bergen, Hügeln, Flüssen,
Solang ichs deutlich sah, ein Schatz der Freuden;
Zuletzt im Blauen blieb ein Augenweiden
An fernentwichnen lichten Finsternissen.

# ^D
 => ["Mit Wohnungen, mit Bergen, Hügeln, Flüssen,\n",
 "Solang ichs deutlich sah, ein Schatz der Freuden;\n",
 "Zuletzt im Blauen blieb ein Augenweiden\n",
 "An fernentwichnen lichten Finsternissen.\n"]

嗯,只要打几次电话就行了?如果不是通过换行符,该方法如何知道何时停止读取?这是RubyCan中唯一可行的解决方案。您可以解释$/的作用吗?@Joseph这是一个ruby全局变量,由gets和readline用作分隔符。这是对终止字符过程的良好封装。您的示例代码中的标准使用了错误的变量名。我本来会编辑它的,但它不超过6个字符limit@Will谢谢,没人注意到。
str = <<-EOF
Your multi line
text goes here
.....
EOF
> $stdin.readlines
Mit Wohnungen, mit Bergen, Hügeln, Flüssen,
Solang ichs deutlich sah, ein Schatz der Freuden;
Zuletzt im Blauen blieb ein Augenweiden
An fernentwichnen lichten Finsternissen.

# ^D
 => ["Mit Wohnungen, mit Bergen, Hügeln, Flüssen,\n",
 "Solang ichs deutlich sah, ein Schatz der Freuden;\n",
 "Zuletzt im Blauen blieb ein Augenweiden\n",
 "An fernentwichnen lichten Finsternissen.\n"]