On Fri, Aug 14, 2009 at 2:23 PM, kj <[email protected]> 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