"Phil Mayes" <oliv...@olivebr.com> wrote in message
news:5.2.1.1.0.20090412194731.013d0...@olivebr.com...
I am trying to search for 1 or more empty or white-space-only lines.
Empty lines work:
>>> re.compile('(?m)(^$){1,2}')
<_sre.SRE_Pattern object at 0x010F9218>
One line with possible whitespace works:
>>> re.compile('(?m)(^\s*$)')
<_sre.SRE_Pattern object at 0x010F7860>
Multiple lines with possible whitespace don't:
>>> re.compile('(?m)(^\s*$)+')
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
File "C:\Python25\lib\re.py", line 180, in compile
return _compile(pattern, flags)
File "C:\Python25\lib\re.py", line 233, in _compile
raise error, v # invalid expression
error: nothing to repeat
Does anyone know a work-round?
PythonWin 2.6.1 (r261:67517, Dec 4 2008, 16:51:00) [MSC v.1500 32 bit
(Intel)] on win32.
Portions Copyright 1994-2008 Mark Hammond - see 'Help/About PythonWin' for
further copyright information.
import re
data='hello\n\n\n\n\ngoodbye\n' # 4 blank lines
re.search('(?m)^\s*\n',data).group(0)
'\n\n\n\n'
Note that $ in MULTILINE mode matches just before a newline or the end of a
string, so it won't include the last newline. \s* is greedy and will match
multiple lines.
-Mark
--
http://mail.python.org/mailman/listinfo/python-list