"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

Reply via email to