实现的思路是,查表找到该字的所有读音,然后取首字母.

代码:

while (<DATA>) {chomp;my ($head, $all) = /^(.{3})(.*)$/;$all =~ s/^\s+//;### 只保留无音标号的首字母sub toshorter {my $str = $_[0];$str =~ s/ā|á|ǎ|à/a/g;$str =~ s/ē|é|ě|è/e/g;$str =~ s/ō|ó|ǒ|ò/o/g;$str =~ s/^([a-z]).*$/\1/;return $str;};my @tmp;for (split ',', $all) {push @tmp, toshorter($_);}$all = join ',', @tmp;###$pytable{$head} = $all;
}sub getheadstr {@str = $_[0] =~ /.{3}/g;@res = ();sub loop {my ($no, $head) = @_;for (split ',', $pytable{$str[$no]}) {if ($no == $#str) {push @res, $head . $_;} else {loop($no + 1, $head . $_);}}}loop(0, "");undef %count;return join ' ', grep { ++$count{ $_ } < 2; } @res;
}print "乐筠: " . getheadstr("乐筠") . "\n";
print "梁炜: " . getheadstr("梁炜") . "\n";__DATA__
数据太长,另附

数据在此

转载于:https://www.cnblogs.com/jt2001/p/perl-str-to-pinyin-head.html

[perl]字符串转拼音首字母(支持多音字)相关推荐

  1. asp.net 获取汉字字符串的拼音首字母,含多音字

    需求:在很多时候数据查询的时候,我们希望输入某个人姓名的拼音首字母进行查询,例如"潘长江",输入"pcj",就能搜索潘长江相关信息. 实现: #region 获 ...

  2. java取汉字拼音首字母含多音字及不常见的字

    package com.anxin.ssk.common;import java.io.UnsupportedEncodingException; import java.util.HashMap; ...

  3. js获取字符串转拼音首字母

    var getPy = (function() {//函数使用,本表收录的字符的Unicode编码范围为19968至40869, XDesigner 整理var strChineseFirstPY = ...

  4. 根据中文姓名或者其他中英文混合字符串获取拼音首字母

    <?php /** * Modified by fuyong @ 2015-09-13 * 修复二分法查找方法 * 汉字拼音首字母工具类 * 注: 英文的字串:不变返回(包括数字) eg .ab ...

  5. 匹配中文字符串的拼音首字母或英文字符串的首字母缩写

    原始需求: 有联系人名字为'张三'.'张三丰',搜索'ZS'可以通过系统提供的Contacts.CONTENT_FILTER_URI搜索到.但是匹配字符串高亮时,无法智能将'张三'高亮. 细化需求 需 ...

  6. python提取首字母的函数_Oracle提取中文字符串拼音首字母函数

    通过oracle的NLSSORT函数对汉字按照拼音排序,然后根据汉字的区间返回对应的首字母. 效果1,获取拼音简码: 效果2,获取姓名首字母: 创建函数: /* 获取拼音简码函数 */ CREATE ...

  7. js汉语转拼音(全拼、首字母、拼音首字母)

    新建js文件first_alphabet.js 1 // JavaScript Document 2 // 汉字拼音首字母列表 本列表包含了20902个汉字,用于配合 ToChineseSpell 3 ...

  8. php 汉字按字母排序,在PHP中,将一个汉字数组按照拼音首字母进行排序

    (之前发的这篇博文因为含有敏感关键字,只好重发一遍了) $str = "我们可以在浏览器中看到,当鼠标移到元素上时,元素开始向右移动,开始比较慢,之后则比较快,移开时按原曲线回到原点.&qu ...

  9. VC++中如何获取GB2312字符集中汉字拼音首字母

    一.关于GB2312编码的必要知识 GB2312编码适用于汉字处理.汉字通信等系统之间的信息交换,通行于中国大陆:新加坡等地也采用此编码.中国大陆几乎所有的中文系统和国际化的软件都支持GB 2312. ...

最新文章

  1. mysql主主备份及集群
  2. python的网页解析器_Python网页解析器使用实例详解
  3. 三大应用需求:5G信道编码技术取得突破
  4. 流计算技术实战 - 超大维表问题
  5. vivo手机充电慢还耗电
  6. python制动化之路
  7. jquery插件实现图片延迟加载
  8. spring2中jpa的配置和使用
  9. pc微信登录扫码显示无法连接服务器,WeAuth微信小程序实现PC网站扫码授权登录...
  10. X265代码学习1-X265源码下载编译及VS调试配置
  11. 总结陈丹琦博士论文(一):NEURAL READING COMPREHENSION AND BEYOND
  12. 数据结构基础知识(一)
  13. centos网卡配置
  14. Android studio运行出错 compilation failed see the compiler error output for details.
  15. 539/CA_SI4136/SI4133/SI5351手册解读
  16. Geant4能谱展宽【Gaussian Broadning】-root作图
  17. 迅睿CMS 程序安装教程
  18. DASCTF九月挑战赛复现-web
  19. DEC-DA:Deep Embedded Clustering with Data Augmentation
  20. 引文分析工具HistCite Pro与CiteSpace的安装

热门文章

  1. mac识别hid键盘_Ubuntu Mac 键盘设置F1-F12功能键
  2. oracle自动分区如何创建本地索引吗,创建与管理Oracle分区表和本地索引的实例解析...
  3. 训练集、测试集loss容易出现的问题总结
  4. 标准模块 os.path
  5. 在PL/SQL中使用随机数和GUID
  6. App测试中ios和Android的区别2
  7. linux RAC 安装失败完全卸载
  8. nuxt.js部署vue应用到服务端过程
  9. 树形控件显示数据库数据项
  10. gulp的安装和配置详解