你如何循环Ruby中的多行string?
第一次Ruby程序员很简单的问题。
你如何通过Ruby中的一块文本循环? 每次换行符合时,我都想重新启动内部循环。
def parse(input) ... end
串#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
我认为这应该照顾换行符。