我必须从文件中获取特定数据。我需要考虑的是包含特定字符串(“ - 测试”)仅线,并采取了剩余的字符分割线与红宝石中的特定字符串
我的文件中包含类似的几行:
# = = = = =
# SETTING
# = = = = =
# install - ports
--TEST:ports_1 80
--TEST:ports_2 1024
INCLUDE: gvars/controller.cfg # temporary
我需要解析与“线 - -TEST:”走其余的字符,如‘ports_1’ 我正在使用的代码读取文件:
File.readlines(FILE_NAME).each do |line|
.....
end
然后我试图通过串到每行分裂‘ - 测试’和空间“\ s”,但我认为这不是最好的和正确的方式
line.split(--TEST:"\s/).each do |line_parsed|
这工作得很好!通过此代码,只有包含字符串“--TEST”的行才会考虑在内。但是,如果我使用l [0],我将获得所有的行并且l [1] NIL。例如,如何访问字符串“port_1”? – user3472065
'/^- TEST:(。*)$ /'→'/^- TEST:(\ S +)\ s +(。*)$ /' – mudasobwa
请注意,'read'与op'readlines'的不同之处在于整个文件将陷入内存,这可能对较大的文件不利。 – Matt