免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 7694 | 回复: 10

如何设置变量不区分大小写 [复制链接]

论坛徽章:
0
发表于 2014-08-11 10:51 |显示全部楼层
下面是一个汉英字典里面的内容  ,我将第一列的英文设为一个哈希表里的键 $en ,怎样设置这个$en不区分大小写呢 ?比如有个单词Abandon  怎样使得这个单词也对应着 抛弃,放弃这个意思呢?
求高手指点,谢谢!!
abandon                                                                 抛弃,放弃                                       
abandonment                                                     放弃                                       
abbreviation                                                            缩写                                       
abeyance                                                                缓办 , 中止                                 
abide                                                                   遵守                                       
ability                                                                 能力                                       
able                                                                    有能力的 , 能干的                           
abnormal                                                                反常的,  变态的                              
aboard                                                                  船上, 车上                                   
abolish                                                                 废除 , 取消                                 
abolition                                                               废除 , 取消                                 
abortion                                                                流产                                       
abortive                                                                无效果的 , 失败的                           
about                                                                关于,  大约      

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
发表于 2014-08-11 10:57 |显示全部楼层
回复 1# 大山里出来的孩子

lc(lowercase)

more information as below command:
$ perldoc -f lc      
   

论坛徽章:
0
发表于 2014-08-11 11:05 |显示全部楼层
你这个是将大写转换成小写 ,我想要的是不区分大小写 回复 2# jason680


   

论坛徽章:
0
发表于 2014-08-11 11:08 |显示全部楼层
回复 3# 大山里出来的孩子


jason680的意思是

將讀進來的單詞先全部轉換成小寫

再使用hash來找

论坛徽章:
0
发表于 2014-08-11 12:51 |显示全部楼层
回复 1# 大山里出来的孩子

搜索的时候(匹配的时候)忽略大小写可以吧
   

论坛徽章:
0
发表于 2014-08-11 13:30 |显示全部楼层
恩恩,那如果hash里面既有大写也有小写呢?回复 4# afukada


   

论坛徽章:
5
丑牛
日期:2014-01-21 08:26:26卯兔
日期:2014-03-11 06:37:43天秤座
日期:2014-03-25 08:52:52寅虎
日期:2014-04-19 11:39:48午马
日期:2014-08-06 03:56:58
发表于 2014-08-11 15:20 |显示全部楼层
one to three ~ {:2_168:}
my $师傅         jason680:
  1. lc
复制代码
my $师傅         afukada:
  1. 將讀進來的單詞先全部轉換成小寫
复制代码
{ adam => [ 亚当 ], abolish => [ 废除, 取消 ] }
  1. my %dic = map { my ($e, @c) = split; lc($e) => [@c] } <DATA>;

  2. __DATA__
  3. Adam 亚当
  4. abolish 废除 取消
复制代码
回复 6# 大山里出来的孩子


   

论坛徽章:
0
发表于 2014-08-11 17:22 |显示全部楼层
那要是我的里面大小写都有呢 ?回复 7# pitonas


   

论坛徽章:
0
发表于 2014-08-11 18:04 |显示全部楼层
你的意思是如果要查Abandon

結果也能找到 抛弃,放弃 嗎?

那就:
  1. while(<DATA>)
  2. {
  3.         chomp;
  4.         ($key,$vlaue)=split;
  5.         print $vlaue,"\n";
  6.         $dict{lc($key)}=$vlaue;
  7. }

  8. @list=("abandon","Abandon","abaNdon","ABANDON");

  9. foreach(@list)
  10. {
  11.         $trans=$dict{lc($_)};
  12.         print "$_\t$trans\n";
  13. }

  14. __DATA__
  15. abandon                                                                 抛弃,放弃                                       
  16. abandonment                                                     放弃                                       
  17. abbreviation                                                            缩写                                       
  18. abeyance                                                                缓办 , 中止                                 
  19. abide                                                                   遵守                                       
  20. ability                                                                 能力                                       
  21. able                                                                    有能力的 , 能干的                           
  22. abnormal                                                                反常的,  变态的                              
  23. aboard                                                                  船上, 车上                                   
  24. abolish                                                                 废除 , 取消                                 
  25. abolition                                                               废除 , 取消                                 
  26. abortion                                                                流产                                       
  27. abortive                                                                无效果的 , 失败的                           
  28. about                                                                关于,  大约
复制代码
不管輸出輸入都強制轉換成小寫

论坛徽章:
5
丑牛
日期:2014-01-21 08:26:26卯兔
日期:2014-03-11 06:37:43天秤座
日期:2014-03-25 08:52:52寅虎
日期:2014-04-19 11:39:48午马
日期:2014-08-06 03:56:58
发表于 2014-08-11 18:07 |显示全部楼层
N 多种方法

  1. my %dic;
  2. map { my ( $e, @c ) = split; @{ $dic{ lc($e) } }{@c} = () } <DATA>;
  3. say perl %dic;

  4. # { abolish => { 废除 => undef, 取消 => undef }, adam => { 亚当 => undef, 有当 => undef } }

  5. __DATA__
  6. Adam 亚当
  7. adam 有当
  8. abolish 废除 取消
复制代码
  1. my %dic;
  2. while (<DATA>) {
  3.     my ( $EN, @CH ) = split;
  4.     my $en = lc $EN;
  5.     my %c;
  6.     @c{ @{ $dic{$en} || [] }, @CH } = ();
  7.     $dic{$en} = [ keys %c ];
  8. }
  9. say perl %dic;

  10. # { abolish => [ 废除, 消除, 取消 ], adam => [ 有当, 当亚, 亚当 ] }

  11. __DATA__
  12. Adam 亚当
  13. adam 有当 当亚
  14. abolish 废除 取消 消除
  15. Abolish 废除 取消
复制代码
回复 8# 大山里出来的孩子


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP