class MatchData
Public Instance Methods
match(index=0)
click to toggle source
Return the primary match string. This is equivalent to +md+.
md = /123/.match "123456" md.match #=> "123"
CREDIT: Martin DeMello
# File lib/facets/matchdata/match.rb, line 10 def match(index=0) self[index] end
matchset()
click to toggle source
Returns [ pre_match, matchtree, post_match ]. (see matchtree)
md = /(bb)(cc(dd))(ee)/.match "XXaabbccddeeffXX" md.to_a #=> ["bbccddee", "bb", "ccdd", "dd", "ee"] md.matchset #=> ["XXaa", [["bb"], ["cc", ["dd"]], ["ee"]], "ffXX"]
CREDIT: Trans
# File lib/facets/matchdata/matchset.rb, line 11 def matchset [pre_match, matchtree, post_match] end
matchtree(index=0)
click to toggle source
An alternate to to_a which returns the matches in order corresponding with the regular expression.
md = /(bb)(cc(dd))(ee)/.match "XXaabbccddeeffXX" md.to_a #=> ["bbccddee", "bb", "ccdd", "dd", "ee"] md.matchtree #=> [["bb"], ["cc", ["dd"]], ["ee"]]
CREDIT: Trans
# File lib/facets/matchdata/matchset.rb, line 24 def matchtree(index=0) ret=[] b, e=self.begin(index), self.end(index) while (index+=1)<=length if index==length || (bi=self.begin(index))>=e # we are finished, if something is left, then add it ret << string[b, e-b] if e>b break else if bi>=b ret << string[b, bi-b] if bi>b ret << matchtree(index) b=self.end(index) end end end return ret end