On 12/14/05, Martin P. [email protected] wrote:
Imagine an input string
aaaaabbccccceeebbbbbbbbbbeaaabaacccceeee…
I have regexp for the parts a,b,c
and e can be considered as else.
So how can I efficiently search/step through the string from left to
right, while calling for each section the fitting handler, kind of
irb(main):001:0> s = ‘aaaaabbccccceeebbbbbbbbbbeaaabaacccceee’
=> “aaaaabbccccceeebbbbbbbbbbeaaabaacccceee”
irb(main):002:0> s.scan(/(a+)|(b+)|(c+)|([^abc]+)/)
=> [[“aaaaa”, nil, nil, nil], [nil, “bb”, nil, nil], [nil, nil,
“ccccc”, nil], [nil, nil, nil, “eee”], [nil, “bbbbbbbbbb”, nil, nil],
[nil, nil, nil, “e”], [“aaa”, nil, nil, nil], [nil, “b”, nil, nil],
[“aa”, nil, nil, nil], [nil, nil, “cccc”, nil], [nil, nil, nil,
“eee”]]
irb(main):003:0>