你如何在Ruby中循环多线字符串?
-
03-07-2019 - |
题
来自第一次Ruby程序员的非常简单的问题。
如何在Ruby中循环一段文本?每次遇到换行符时,我都想重新启动内循环。
def parse(input)
...
end
解决方案
str.each_line do |line|
#do something with line
end
其他提示
Iraimbilanja说的话。
或者您可以将字符串拆分为新行:
str.split(/\r?\n|\r/).each { |line| … }
请注意 each_line
会保留换行符,而 split
会占用它们。
注意我在这里使用的正则表达式将处理所有三行结束格式。 String#each_line
用可选参数 sep_string
分隔行,默认为 $ /
,它本身默认为" \ n"
简单。
最后,如果您想进行更复杂的字符串解析,请查看内置的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
我认为这应该照顾换行。
不隶属于 StackOverflow