Splitting on '^' ?
Gary Herron
gherron at islandtraining.com
Fri Aug 14 16:36:20 EDT 2009
kj 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?
>
Just split on the EOL character: the "\n":
re.split('\n', 'spam\nham\neggs\n')
['spam', 'ham', 'eggs', '']
The "^" and "$" characters do not match END-OF-LINE, but rather the
END-OF-STRING, which was doing you no good.
Gary Herron
> kynn
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20090814/dcaeb83e/attachment-0001.html>
More information about the Python-list
mailing list