Also does not behave with this code:

s = "onexytwoxyxythreexyxyxyfour"
p s.split(/(xy)+/)


On Mar 1, 10:00 am, Philip Hallstrom <[email protected]> wrote:
> On Mar 1, 2010, at 9:50 AM, [email protected] wrote:
>
>
>
>
>
> > I am trying to split some text into an array seperated by one or more
> > <br>
>
> > Here is some test code:
>
> > s = "one<br>two<br><br>three<br><br><br>four"
> > p s.split(/(<br>)+/);
>
> > it should split into  ["one","two","three","four"]   because the /
> > (<br>)+/ pattern should use one or more <br> as the pattern to split
> > around
>
> > but it does this
> > ["one", "<br>", "two", "<br>", "three"]
>
> > Why does it do this and what split could I use to get it to work?
>
> > Note:,  I know that I could just fix it by removeing the <br> lines
> > after it is done from the array, but it seems that the regular
> > expression in split should work.
>
> Interesting.  Docs say:
>
>    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.
>
> Which seems to be saying exactly what you are are describing.  If a  
> regexp is used the match isn't "eaten", but simply divided on.
>
> You could split it on "<br>" and then remove any blank elements... not  
> sure if that's any better than your alternative approach though.- Hide quoted 
> text -
>
> - Show quoted text -

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to