On 21/09/2010 04:21, Jerry Fleming wrote:
Hi,

Having the following python code:


import locale
import re

locale.setlocale(locale.LC_ALL, 'zh_CN.utf8')
re.findall('(?uL)\s+', u'\u2001\u3000\x20', re.U|re.L)
re.findall('\s+', u'\u2001\u3000\x20', re.U|re.L)
re.findall('(?uL)\s+', u'\u2001\u3000\x20')


I was wondering why doesn't it find the unicode space chars \u2001 and
\u3000? The python docs for re module says:

When the LOCALE and UNICODE flags are not specified, matches any
whitespace character; this is equivalent to the set [ \t\n\r\f\v]. With
LOCALE, it will match this set plus whatever characters are defined as
space for the current locale. If UNICODE is set, this will match the
characters [ \t\n\r\f\v] plus whatever is classified as space in the
Unicode character properties database.

which doesn't seem to work. Any ideas?

Use the regex module? ;-)

    http://pypi.python.org/pypi/regex

BTW, LOCALE is for locale-specific bytestrings.

Basically the choice is between ASCII (bytestring) (default in Python
2), LOCALE (bytestring) and UNICODE (Unicode string), so don't bother
combining them.
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to