【发布时间】:2016-09-09 16:50:50
【问题描述】:
在德语文本中,变音符号 (ä, ü, ö) 和 eszett (ß) 是常规字母,但它们似乎没有被 \w 特殊字符覆盖:
In [1]: re.match('(\w+)', 'Straße').groups()
Out[1]: ('Stra',)
将re.UNICODE 标志传递给re.match 不会改变任何东西。
除了[a-zA-ZäüöÄÜÖß]+之外,还有什么更好的方法来匹配一个完整的单词?
【问题讨论】:
-
是 Python 2 还是 3?
-
@WiktorStribiżew 2
-
我无法复制:请参阅
re.match(ur'(\w+)', u'Straße', flags=re.U).group(1).encode("utf8"),它会打印出Straße。也许您只是错过了u""前缀?当您通过re.U标志时,\w实际上涵盖了所有 Unicode 字母。 -
@WiktorStribiżew 您应该将其发布为答案。这就是答案。当我使用他的代码时,我得到与@elpres 相同的结果。它肯定需要
u前缀。 -
@WiktorStribiżew 没错,
u''前缀确实解决了问题。
标签: python regex python-2.x