我在Python中有一个Unicode字符串,我想删除所有的重音符号(变音符号).
我在Web上发现了一种在Java中执行此操作的优雅方法:
我是否需要安装pyICU等库?或者只使用python标准库?那python 3怎么样?
重要说明:我想避免代码使用重音字符到非重音符号的显式映射.
用户输入一组带有重音和波浪号的名称:
Renato Núñez, David DeJesús, and Edwin Encarnación
Run Code Online (Sandbox Code Playgroud)
我的数据库为这些人设置了英文名称
@names = ('Renato Nunez','David DeJesus','Edwin Encarnacion');
Run Code Online (Sandbox Code Playgroud)
我希望对这些名称进行正则表达式匹配.
$string = "Renato Núñez, David DeJesús, and Edwin Encarnación";
foreach my $name (@names) {
print "found:$name\n" if ($name =~ /$string/);
}
Run Code Online (Sandbox Code Playgroud)
如目前所示,我没有比赛.
我尝试了这个,但它没有用.
$string = "Renato Núñez, David DeJesús, and Edwin Encarnación";
foreach my $name (@names) {
$name =~ s|a|[áa]|;
$name =~ s|e|[ée]|;
$name =~ s|i|[íi]|;
$name =~ s|o|[óo]|;
$name =~ s|u|[úu]|;
$name =~ s|n|[ñn]|;
# Originally: print "found:$name\n" if ($name =~ /$string/);
# …Run Code Online (Sandbox Code Playgroud) Python 3.3将casefold方法添加到str类型,但在2.x中我没有任何东西.解决这个问题的最佳方法是什么?
unicode ×3
python ×2
python-2.x ×2
diacritics ×1
localization ×1
perl ×1
python-3.x ×1
regex ×1