如何让这个正则表达式忽略重音字符?

时间:2017-06-12 13:17:55

标签: python regex

我有一个文本文件,我的脚本正在阅读并从中获取最常用的文字。但是,在执行此操作的过程中,在清理源文本期间,它无法处理重音字符(在这种情况下,它们是áéíóöőúüű)。

这就是我现在所拥有的。

str = re.sub(r'\W+', ' ', str)

这只是删除重音字符。我尝试添加flags=re.U,但它只是以不同的方式搞砸了结果。我怀疑有一个简单的方法来解决我的问题,我已经找到了,但没有成功,所以我转向你。提前谢谢。

1 个答案:

答案 0 :(得分:3)

您需要使用正确的修饰符:

str = re.sub(ur'\W+', u' ', s, flags=re.UNICODE)
                                     ^^^^^^^^^^

请参阅Python 2.x docs

  

制作\w\W\b\B\d\D\s和{{1序列依赖于Unicode字符属性数据库。还可以为IGNORECASE启用非ASCII匹配。

这是在线Python 2.7 demo

\S