【发布时间】:2017-10-24 23:58:27
【问题描述】:
我有一个包含这样部分的文件,
flags...id, description, used, color
AB, "Abandoned", 0, 13168840
DM, "Demolished", 0, 15780518
OP, "Operational", 0, 15780518...
其中... 表示一系列控制字符,例如ETX 和 STX。我正在尝试从文件中获取多行。
我正在使用以下代码:
f = File.open(somePath)
r = f.grep(/flags.+id, description, used, color(?<data>(?:.|\s)*?)[\x00-\x08]/)
此代码不起作用。我不明白为什么。 grep 的文档似乎暗示该文件是逐行解析的。我有一种感觉,这可能是正则表达式没有返回任何结果的原因。
- 我是否纠正了 grep 使用逐行解析?这就是我的正则表达式没有按预期工作的原因吗?
- 使用
file.each_line捕获数据会更好吗? - 是否有比上述所有更好/更清洁的替代方案?
【问题讨论】:
-
你没有逃过
.期间。你必须写\.。 -
@sawa,你确定吗? Sancam 说“其中……代表一系列控制字符”。我认为他不会寻找经期。
-
@Philicare 我明白了。你是对的。