[EMAIL PROTECTED] writes:

> multipleSpaces = re.compile(u'\\h+')
> 
> importantTextString = '\n  \n  \n \t\t  '
> importantTextString = multipleSpaces.sub("M", importantTextString)

Please get into the habit of following the Python coding style guide
<URL:http://www.python.org/dev/peps/pep-0008>.

For literal strings that you expect to contain backslashes, it's often
clearer to use the "raw" string syntax:

    multiple_spaces = re.compile(ur'\h+')

> I would have expected consecutive spaces and tabs to be replaced by
> M

Why, what leads you to expect that? Your regular expression doesn't
specify spaces or tabs. It specifies "the character 'h', one or more
times".

For "space or tab", specify a character class of space and tab:

    >>> multiple_spaces = re.compile(u'[\t ]+')
    >>> important_text_string = u'\n  \n  \n \t\t  '
    >>> multiple_spaces.sub("M", important_text_string)
    u'\nM\nM\nM'


You probably want to read the documentation for the Python 're' module
<URL:http://www.python.org/doc/lib/module-re>. This is standard
practice when using any unfamiliar module from the standard library.

-- 
 \           “If you do not trust the source do not use this program.” |
  `\                                —Microsoft Vista security dialogue |
_o__)                                                                  |
Ben Finney
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to