Perl 板


LINE

给你参考看看! 利用一些取代把那些ACT, PTN取代成一个符号, 然後就可以利用一些规则把pattern过滤出来。 #!/usr/bin/perl -w use strict; open FH, "<$ARGV[0]" or die "file open fail:$!"; while (my $thisLine = <FH>) { if ($thisLine eq "") { next; } $thisLine =~ s{\s+$}{}; my $list; while ($thisLine =~ m{(ACT|PTN)}g){ $list .= $1; } $list =~ s{ACT}{1}g; $list =~ s{PTN}{2}g; $list =~ s{1{3,}}{1}g; $list =~ s{2{3,}}{2}g; print "####$list#### "; if ($list =~ m{212}) { print "class 1\n"; } elsif ($list =~ m{122}) { print "class 2\n"; } elsif ($list =~ m{221}) { print "class 3\n"; } else { print "no match\n" } } close FH; ※ 引述《Yaowei (开心)》之铭言: : 若我有三种可能分别是  : 1. PTN ACT PTN 、 ACT PTN PTN 与 PTN PTN ACT : 而我想将输入的句子丢入後判断它们到底属於哪一类? : p.s. 在各PTN ACT之间可能它们的前後有无字出现皆有可能 : 所以也是有可能会出现PTN 或 ACT的字 : 但我只想要取得最小的范围就好,当上述的其中一种情况成立的话 : 例子如下: : AA ACT with PTN CC PTN : ==>属於第二类 ACT PTN PTN : ------------------------------ : that PTN ACT to of PTN at : ==>属於第一类 PTN ACT PTN : ------------------------------ : PTN ACT that ACT to and ACT PTN : ==>属於第一类 PTN ACT PTN : ------------------------------ : aaa ACT between PTN and PTN : ==>属於第二类 : ------------------------------ : abcd and cc PTN cc PTN aa ACT : ==>属於第三类 : 只是我使用常规表示式若写成下列的话 : 则第二类会永远被比成第一类,根本不会比对到第二类去 : while(<LINE>){ : if(/(.*)?(PTN.*ACT.*PTN).*?/){ : print "目前的情况是1:PTN ACT PTN\n"; : print "1.抓到的\$&:",$&,$/; : print "-------------------------\n"; : }elsif(/(.*)?ACT.*PTN.*PTN.*?/){ : print "目前的情况是2:ACT PTN PTN\n"; : print "2.抓到的\$&:",$&,$/; : print "-------------------------\n"; : }else{ : print "目前的情况是3:PTN PTN ACT\n"; : print "3.抓到的\$&:",$&,$/; : print "-------------------------\n"; : } : } : 请问是否要改什麽地方会比较好呢^^?感谢 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.135.62.188
1F:推 Yaowei:十分感谢你 困扰了我许久的问题= =要多多学习了 04/08 00:12
※ 编辑: fuu0115 来自: 220.135.62.188 (04/08 10:07)
2F:推 Yaowei:但我发现有个小问题就是若是2212则不会读到221而是212= = 04/08 20:21







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:WOW站内搜寻

TOP