Programming Ruby

The Pragmatic Programmer's Guide

Previous < Contents ^
Next >
class MatchData
Parent: Object
Version: 1.6

Index:

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


MatchData is the type of the special variable $~, and is the type of the object returned by Regexp#match and Regexp#last_match . It encapsulates all the results of a pattern match, results normally accessed through the special variables $&, $', $`, $1, $2, and so on.

instance methods
[ ] mtch[i] -> anObject
mtch[start, length] -> anArray
mtch[aRange] -> anArray

Match Reference---MatchData acts as an array, and may be accessed using the normal array indexing techniques. mtch[0] is equivalent to the special variable $&, and returns the entire matched string. mtch[1], mtch[2], and so on return the values of the matched backreferences (portions of the pattern between parentheses).

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 ) -> anInteger

Returns the offset of the start of the nth element of the match array in the string.

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

end mtch.end( n ) -> anInteger

Returns the offset of the character immediately following the end of the nth element of the match array in the string.

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

length mtch.length -> anInteger

Returns the number of elements in the match array.

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

offset mtch.offset( n ) -> anArray

Returns a two-element array containing the beginning and ending offsets of the nth match.

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

post_match mtch.post_match -> aString

Returns the portion of the original string after the current match. Equivalent to the special variable $'.

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

pre_match mtch.pre_match -> aString

Returns the portion of the original string before the current match. Equivalent to the special variable $`.

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

size mtch.size -> anInteger

A synonym for MatchData#length .

string mtch.string -> aString

Returns a frozen copy of the string passed in to match.

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

to_a mtch.to_a -> anArray

Returns the array of matches.

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

to_s mtch.to_s -> aString

Returns the entire matched string.

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


Previous < Contents ^
Next >

Extracted from the book "Programming Ruby - The Pragmatic Programmer's Guide"
Copyright © 2000 Addison Wesley Longman, Inc. Released under the terms of the Open Publication License V1.0.
This reference is available for download.