Can't understand String#split's behavior

When I use ruby 1.8.7 I have a problem with String#split.

It’s fine:

p “bAbAbAb”.split(/A/)
[“b”, “b”, “b”, “b”]

But it cant work:

p “bAbAbAb”.split(/(A)/)
[“b”, “A”, “b”, “A”, “b”, “A”, “b”]

I think that /A/ and /(A)/ are almost equivalent, but why can’t I use
/(A)/
to split string?

-Lai

On Sun, Oct 17, 2010 at 8:46 AM, 冷雨 [email protected] wrote:

I think that /A/ and /(A)/ are almost equivalent,

almost

but why can’t I use /(A)/ to split string?

as documented, you can, but w a different behaviour/result for split

(from ruby core)
=== Implementation from String

str.split(pattern=$;, [limit]) -> anArray


Divides str into substrings based on a delimiter, returning an array of
these substrings.

If pattern is a String, then its contents are used as the
delimiter when splitting str. If pattern is a single
space, str is split on whitespace, with leading whitespace and runs of
contiguous whitespace characters ignored.

If pattern is a Regexp, str is divided where the pattern
matches. Whenever the pattern matches a zero-length string, str is split
into individual characters. If pattern contains groups, the
respective matches will be returned in the array as well.

Sorry for my careless.
And thank you very match.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs