Class: MatchData
- Defined in:
- lib/nano/matchdata/match.rb,
lib/nano/matchdata/matchset.rb,
lib/nano/matchdata/matchtree.rb
Instance Method Summary collapse
-
#match ⇒ 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 ⇒ Object
Return the primary match string. This is equivalent to md[0].
md = /123/.match "123456"
md.match #=> "123"
8 9 10 |
# File 'lib/nano/matchdata/match.rb', line 8 def match self[0] end |
#matchset ⇒ Object
Returns [ pre_match, matchtree, post_match ]. (see matchtree)
6 7 8 |
# File 'lib/nano/matchdata/matchset.rb', line 6 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 #=> ["XXaabbccddeeffXX", "bb", "ccdd", "dd", "ee"]
md.matches #=> ["XXaa", [["bb"], ["cc", ["dd"]], "ee"], "ffXX"]
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/nano/matchdata/matchtree.rb', line 10 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 |