Programmierung in Ruby

Der Leitfaden der Pragmatischen Programmierer

class MatchData
Parent: Object
Version: 1.6

Index:

[ ] begin end length offset post_match pre_match size string to_a to_s


MatchData ist der Typ der speziellen Variable $~; sie ist auch der Typ des Objekts, das von Regexp#match und Regexp#last_match zurück gegeben wird. Es kapselt alle Ergebnisse eines Mustervergleichs, die üblicherweise den speziellen Variablen $&, $', $`, $1, $2, usw. zugewiesen werden.

instance methods
[ ] mtch[i] -> einObjekt
mtch[anfang, laenge] -> einArray
mtch[einBereich] -> einArray

Match Referenz---MatchData verhält sich wie ein Array und auf seine Elemente kann über die üblichen Array-Indizierungs-Techniken zugegriffen werden. mtch[0] entspricht der speziellen Variablen $&. Der Aufruf gibt den gesamten String zurück. mtch[1], mtch[2] usw. enthalten die Werte der gefundenen Rückverweise (Teile des Musters in den Klammern).

m = /(.)(.)(\d+)(\d)/.match("THX1138.")
m[0] » "HX1138"
m[1, 2] » ["H", "X"]
m[1..3] » ["H", "X", "113"]
m[-3, 2] » ["X", "113"]

begin mtch.begin( n ) -> einInteger

Gibt den Offset des nten Elements aus dem Match-Array im String zurück.

m = /(.)(.)(\d+)(\d)/.match("THX1138.")
m.begin(0) » 1
m.begin(2) » 2

end mtch.end( n ) -> einInteger

Gibt den Offset des Zeichens im String zurück, das unmittelbar auf das Ende des nten Elements im Match-Array folgt.

m = /(.)(.)(\d+)(\d)/.match("THX1138.")
m.end(0) » 7
m.end(2) » 3

length mtch.length -> einInteger

Gibt die Anzahl der Elemente im Match-Array zurück.

m = /(.)(.)(\d+)(\d)/.match("THX1138.")
m.length » 5
m.size » 5

offset mtch.offset( n ) -> einArray

Gibt ein zwei-Elemente-Array mit dem jeweiligen Start- und End-Offset des nten Elements aus dem Match-Array im String zurück.

m = /(.)(.)(\d+)(\d)/.match("THX1138.")
m.offset(0) » [1, 7]
m.offset(4) » [6, 7]

post_match mtch.post_match -> einString

Gibt den Teil des Originalstrings zurück, der auf den Treffer folgt. Equivalent mit der speziellen Variable $'.

m = /(.)(.)(\d+)(\d)/.match("THX1138: The Movie")
m.post_match » ": The Movie"

pre_match mtch.pre_match -> einString

Gibt den Teil des Originalstrings zurück, der vor dem Trefferbereich steht. Equivalent mit der speziellen Variable $`.

m = /(.)(.)(\d+)(\d)/.match("THX1138.")
m.pre_match » "T"

size mtch.size -> einInteger

Synonym für MatchData#length.

string mtch.string -> einString

Gibt die eingefrorene Kopie des von match durchsuchten Strings zurück.

m = /(.)(.)(\d+)(\d)/.match("THX1138.")
m.string » "THX1138."

to_a mtch.to_a -> einArray

Gibt das Array der Treffer zurück.

m = /(.)(.)(\d+)(\d)/.match("THX1138.")
m.to_a » ["HX1138", "H", "X", "113", "8"]

to_s mtch.to_s -> einString

Gibt den gesamten Trefferstring zurück.

m = /(.)(.)(\d+)(\d)/.match("THX1138.")
m.to_s » "HX1138"


Extracted from the book "Programming Ruby - The Pragmatic Programmer's Guide"
Übersetzung: Carsten Schinzer
Für das englische Original:
© 2000 Addison Wesley Longman, Inc. Released under the terms of the Open Publication License V1.0. That reference is available for download.
Diese Lizenz sowie das Original vom Herbst 2001 bilden die Grundlage der Übersetzung
Es wird darauf hingewiesen, dass sich die Lizenz des englischen Originals inzwischen geändert hat.
Für die deutsche Übersetzung:
© 2002 Jürgen Katins
Der Copyright-Eigner stellt folgende Lizenzen zur Verfügung:
Nicht-freie Lizenz:
This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, v1.0 or later (the latest version is presently available at http://www.opencontent.org/openpub/). Distribution of substantively modified versions of this document is prohibited without the explicit permission of the copyright holder. Distribution of the work or derivative of the work in any standard (paper) book form is prohibited unless prior permission is obtained from the copyright holder.
Freie Lizenz:
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".