Class: MatchData
- Defined in:
- lib/core/facets/matchdata/match.rb,
lib/core/facets/matchdata/matchset.rb
Instance Method Summary collapse
-
#match(index = 0) ⇒ Object
Return the primary match string.
-
#matchset ⇒ Object
Returns [ pre_match, matchtree, post_match ].
-
#matchtree(index = 0) ⇒ Object
An alternate to #to_a which returns the matches in order corresponding with the regular expression.
Instance Method Details
#match(index = 0) ⇒ Object
Return the primary match string. This is equivalent to md[0]
.
md = /123/.match "123456"
md.match #=> "123"
CREDIT: Martin DeMello
10 11 12 |
# File 'lib/core/facets/matchdata/match.rb', line 10 def match(index=0) self[index] end |
#matchset ⇒ Object
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
11 12 13 |
# File 'lib/core/facets/matchdata/matchset.rb', line 11 def matchset [pre_match, matchtree, post_match] end |
#matchtree(index = 0) ⇒ Object
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
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/core/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 |