你如何循环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 

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

  • 如何在Java中退出while循环?
  • 如何pipe道input到Bash while循环,并在循环结束后保存variables
  • 如何在java中使用Scanner方法“hasNext”作为条件退出while循环?
  • Perl:虽然没有条件
  • 如何检查列表中的所有元素是否与条件匹配?
  • find最内层的exception,而不使用while循环?
  • 循环是否真的更快?
  • 用matplotlib实时绘制while循环