perl – 从重音字符中删除重音符号
发布时间:2020-12-16 06:08:33 所属栏目:大数据 来源:网络整理
导读:参见英文答案 How to convert letters with accents,umlauts,etc to their ASCII counterparts in Perl?????????????????????????????????????4个 我正在寻找建议我应该使用哪些库和/或函数将国际文本转换为它的英文字符替代品. 例如 Vous avez aimé l'ép
参见英文答案 >
How to convert letters with accents,umlauts,etc to their ASCII counterparts in Perl?????????????????????????????????????4个
我正在寻找建议我应该使用哪些库和/或函数将国际文本转换为它的英文字符替代品. 例如 Vous avez aimé l'épée offerte par les elfes à Frodon 转换成 Vous avez aime l'epee offerte par les elfes a Frodon 解决方法
首先,您可以使用
Unicode::Normalize分解字符,然后您可以使用简单的正则表达式删除所有变音符号. (我想简单地抓住所有非间距标记字符应该这样做,但可能有一两个不起眼的例外.)
这是一个例子: use strict; use warnings; use utf8; use Unicode::Normalize; my $test = "Vous avez aimé l'épée offerte par les elfes à Frodon"; my $decomposed = NFKD( $test ); $decomposed =~ s/p{NonspacingMark}//g; print $decomposed; 输出: Vous avez aime l'epee offerte par les elfes a Frodon (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |