我有一个文本文件,其中一行可以是空白的,注解(以//
开头)或指令(即任何非空白或注解)。例如:
Hiya #{prefs("interlocutor")}!
// Say morning appropriately or hi otherwise
#{(0..11).include?(Time.now.hour) ? 'Morning' : 'Hi'} #{prefs("interlocutor")}
我试图将文件的内容读入一个数组,其中只包含指令行(即跳过空行和注解)。我有以下代码(可以工作):
path = Pathname.new("test.txt")
# Get each line from the file and reject comment lines
lines = path.readlines.reject{ |line| line.start_with?("//") }.map{ |line| line.chomp }
# Reject blank lines
lines = lines.reject{ |line| line.length == 0 }
有没有更有效或更优雅的方法来做这件事?
2条答案
按热度按时间soat7uwm1#
start_with
接受多个参数,因此您可以一气呵成。
xa9qqrwz2#
我会这样做,使用regex:
要分解正则表达式: