【发布时间】:2014-07-17 12:30:58
【问题描述】:
我需要根据不同的规则来解析一个文件。 该文件包含几行。 我逐行浏览文件。当我找到一个特定的字符串时,我必须存储下一行中存在的数据,直到找到一个特定的字符。
文件示例:
start {
/* add comment */
first_step {
sub_first_step {
};
sub_second_step {
code = 50,
post = xxx (aaaaaa,
bbbbbb,
cccccc,
eeeeee),
number = yyyy (fffffff,
gggggg,
jjjjjjj,
ppppppp),
};
所以,在这种情况下:
File.open(@file_to_convert, "r").each_line do |line|
在“行”中,我有当前行。我需要:
1) 查找该行何时包含字符串“xxx”
if line.include?("union") then
正确吗?
2) 将下一个值(例如:aaaa、bbbb、ccccc、eeee)存储在一个数组中,直到找到字符“)”。这突出表明该部分已完成。 我想我们到达带有字符串“xxxx”的行我必须迭代块“if”中的下一行。
【问题讨论】:
-
我不明白您为什么要使用
if line.include?("union") then来检查该行是否包含字符串"xxx"。 -
因为我对 ruby 很陌生,所以这是我的第一个想法。但是任何其他方法都是受欢迎的!!!
-
在我找到字符串“xxxx”之后,我必须存储这些值,直到找到字符“)”。我可以使用这个字符来终止迭代
标签: ruby arrays string file parsing