On Fri, Aug 14, 2009 at 2:23 PM, kj <no.em...@please.post> wrote:

>
>
> Sometimes I want to split a string into lines, preserving the
> end-of-line markers.  In Perl this is really easy to do, by splitting
> on the beginning-of-line anchor:
>
>  @lines = split /^/, $string;
>
> But I can't figure out how to do the same thing with Python.  E.g.:
>
> >>> import re
> >>> re.split('^', 'spam\nham\neggs\n')
> ['spam\nham\neggs\n']
> >>> re.split('(?m)^', 'spam\nham\neggs\n')
> ['spam\nham\neggs\n']
> >>> bol_re = re.compile('^', re.M)
> >>> bol_re.split('spam\nham\neggs\n')
> ['spam\nham\neggs\n']
>
> Am I doing something wrong?
>
> kynn
> --
> http://mail.python.org/mailman/listinfo/python-list
>

You shouldn't use a regular expression for that.

>>> from time import time
>>> start=time();'spam\nham\neggs\n'.split('\n');print time()-start;
['spam', 'ham', 'eggs', '']
4.6968460083e-05
>>> import re
>>> start=time();re.split(r'\n', 'spam\nham\neggs');print time()-start;
['spam', 'ham', 'eggs']
0.000284910202026
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to