>>> this didn't work elegantly as expected: >>> >>> >>> ss >>> 'owi\nweoifj\nfheu\n' >>> >>> re.split(r'(?m)$',ss) >>> ['owi\nweoifj\nfheu\n'] >> Do you have a need to use a regexp? > > I'd like the general case - split without consumption.
I'm not sure there's a one-pass regex solution to the problem using Python's regex engine. If pre-processing was allowed, one could do it. >>>>> ss.splitlines(True) >> ['owi\n', 'weoifj\n', 'fheu\n'] >> > > thanks. Yet this does not work "naturally" consistent in my line > processing algorithm - the further buffering. Compare e.g. > ss.split('\n') .. well, one can do >>> [line + '\n' for line in ss.splitlines()] ['owi\n', 'eoifj\n', 'heu\n'] >>> [line + '\n' for line in (ss+'xxx').splitlines()] ['owi\n', 'eoifj\n', 'heu\n', 'xxx\n'] as another try for your edge case. It's understandable and natural-looking -tkc -- http://mail.python.org/mailman/listinfo/python-list