你如何循环Ruby中的多行string?

第一次Ruby程序员很简单的问题。

你如何通过Ruby中的一块文本循环? 每次换行符合时,我都想重新启动内部循环。

def parse(input) ... end 

4 Solutions collect form web for “你如何循环Ruby中的多行string?”

串#each_line

 str.each_line do |line| #do something with line end 

Iraimbilanja说。

或者你可以将这个string拆分成新的行:

 str.split(/\r?\n|\r/).each { |line| … } 

请注意, each_line保留换行字符,而split吃它们。

请注意我在这里使用的正则expression式将照顾所有三行结束格式。 String#each_line sep_string用可选参数sep_string分隔行,缺省值为$/ ,它本身默认为"\n"

最后,如果你想做更复杂的stringparsing,请检查内置的StringScanner类。

你也可以使用任何模式:

 str.scan(/\w+/) do |w| #do something end 
 str.each_line.chomp do |line| # do something with a clean line without line feed characters end 

我认为这应该照顾换行符。

  • 如何杀一个while循环与按键?
  • 具有返回types的Java方法编译时没有返回语句
  • 哪个更快:while(1)while while(2)?
  • while(true)和for(;;)在PHP中有什么区别?
  • 在循环内部或外部声明variables
  • “while(true)”循环如此糟糕?
  • 'do ... while'与'while'
  • 如何pipe道input到Bash while循环,并在循环结束后保存variables
  • 如何在Java中退出while循环?
  • 最好的循环成语专门套最后一个元素
  • 同时循环批量