作者Yaowei (开心)
看板perl
标题Re: [问题] 常规表示式的比对问题?
时间Sun Apr 8 20:43:27 2007
若将上述的程式改成三个if
则就会成立 但可以不要使用三个if就可以达到吗@@?
因为用if elsif else的话
则只会进入其中一个条件而已 若我想抓出所有可能的结果的话
不知道除了使用3个if之外 perl还有其它更好的方式来达成吗@@?
感谢:)
※ 引述《Yaowei (开心)》之铭言:
: 承接本题目
: 若转换後 由於 分成 212 122 221
: 而一个句子中经过$list转换後有可能会出现是
: 2122 -->表示有可能是212或122
: 2212 -->表示有可能是221或212
: 1221 -->表示有可能是122或221
: 2112 -->表示有可能是221或112
: 2212 -->表示有可能是221或212
: 1221 -->表示有可能是122或221
: 若我想将这些片段取来及其相对应的组别
: 应该可以用perl来达到吧@@
: 有人有什麽不错的方式吗^^
: 因为若是用原本的程式跑的话 只是先比到第一个符合的就秀出分组
: 我有想过用while(/(212|122)/g) @@但若是降子的话则不就要改一大堆了@@
: ※ 引述《fuu0115 (充实计划启动)》之铭言:
: : 给你参考看看!
: : 利用一些取代把那些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;
--
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.116.165.150
1F:→ Yaowei:解出来了 透过使用HASH与substr的切字後即可达成^^ 04/09 00:33