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.