【发布时间】:2017-08-11 04:10:52
【问题描述】:
我尝试了几种不同的方法,但都没有奏效。
假设我有一个字符串 s 定义如下:
s = '[မန္း],[aa]'.decode('utf-8')
假设我想解析方括号内的两个字符串。我编译了以下正则表达式:
pattern = re.compile(r'\[(\w+)\]', re.UNICODE)
然后我使用以下方法查找事件:
pattern.findall(s, re.UNICODE)
结果基本上只是[],而不是预期的两个匹配项列表。此外,如果我从 findall 调用中删除 re.UNICODE,我会得到单个字符串 [u'aa'],即非 unicode 字符串:
pattern.findall(s)
当然
s = '[bb],[aa]'.decode('utf-8')
pattern.findall(s)
返回[u'bb', u'aa']
让事情变得更有趣:
s = '[မနbb],[aa]'.decode('utf-8')
pattern.findall(s)
返回[u'\u1019\u1014bb', u'aa']
【问题讨论】:
-
什么是'd' in s = '[မန်း],[aa]'.d.decode('utf-8') ...不应该是s = '[မန်း] ,[aa]'.decode('utf-8') ?
-
python3 不支持
s = '[bb],[aa]'.decode('utf-8')。您使用的是哪个 python 版本。 -
print(s)提供了什么?
标签: python regex string python-2.7 unicode