我想删除重音,将所有字符都改为小写,并删除任何数字和特殊字符.
示例:
Frédér8ic@ - >弗雷德里克
提案:
def remove_accents(data):
return ''.join(x for x in unicodedata.normalize('NFKD', data) if \
unicodedata.category(x)[0] == 'L').lower()
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来做到这一点?
Abh*_*jit 14
一个可能的解决方案是
def remove_accents(data):
return ''.join(x for x in unicodedata.normalize('NFKD', data) if x in string.printable).lower()
Run Code Online (Sandbox Code Playgroud)
使用NFKD AFAIK是规范化unicode以将其转换为兼容字符的标准方法.其余的是为了删除源自规范化的特殊字符数字和unicode字符,您可以简单地比较string.ascii_letters并删除不在该集合中的任何字符.
| 归档时间: |
|
| 查看次数: |
23639 次 |
| 最近记录: |