ich eine Datei haben, die Abschnitte wie diese hat,mehrzeilige Datei grep
flags...id, description, used, color
AB, "Abandoned", 0, 13168840
DM, "Demolished", 0, 15780518
OP, "Operational", 0, 15780518...
wo ...
z.B. eine Reihe von Steuerzeichen darstellt, ETX und STX. Ich versuche, mehrere Zeilen aus der Datei zu greifen.
Ich verwende den folgenden Code ein:
f = File.open(somePath)
r = f.grep(/flags.+id, description, used, color(?<data>(?:.|\s)*?)[\x00-\x08]/)
Dieser Code funktioniert nicht. Ich verstehe nicht warum. Die Dokumentation von Grep scheint anzudeuten, dass die Datei zeilenweise analysiert wird. Ich habe das Gefühl, dass dies der Grund dafür ist, dass der reguläre Ausdruck keine Ergebnisse liefert.
- Bin ich richtig, dass Grep Zeilen-Parsing verwendet? Aus diesem Grund funktioniert meine Regex nicht wie beabsichtigt?
- Wäre es besser,
file.each_line
zu verwenden, um die Daten zu erfassen? - Gibt es bessere/sauberere Alternativen zu allen oben genannten?
Sie haben nicht die Zeit entkam '.'. Sie müssen '\ .' schreiben. – sawa
@sawa, bist du sicher? Sancam sagt "wo ... steht für eine Reihe von Steuerzeichen". Er denkt nicht nach Perioden, denke ich. –
@Philicare Ich sehe. Du hast recht. – sawa