如何将变音符号与正则表达式匹配?

How to match umlauts with regular expressions?

在德语文本中,变音符号 (ä, ü, ö) 和 eszett (ß) 是常规字母,但它们似乎没有包含在 \w 特殊字符中:

In [1]: re.match('(\w+)', 'Straße').groups()
Out[1]: ('Stra',)

re.UNICODE 标志传递给 re.match 不会改变任何内容。

有没有比 [a-zA-ZäüöÄÜÖß]+ 更好的匹配完整单词的方法?

由于你使用的是python2,你需要使用unicode字符串:

print re.match(ur'(\w+)',u'Straße',re.UNICODE).groups()[0]
Straße