永发信息网

perl 关于判断字符长度并比较

答案:2  悬赏:30  手机版
解决时间 2021-03-23 21:15
  • 提问者网友:呐年旧曙光
  • 2021-03-23 08:06
perl 关于判断字符长度并比较
最佳答案
  • 五星知识达人网友:罪歌
  • 2021-03-23 09:28
#!/usr/bin/perl -w
use strict;
open IN,"open OUT,">b.txt";

print OUT "Simple{","
";
while(){
chomp;
if(/"(.*)"/){
           my $len=(length $1);
           if($len > 16){
                       print OUT $_,"
";
                       }
             }
}
print OUT "}";

close IN;
close OUT;
 
已测试,完全满足你的要求。
全部回答
  • 1楼网友:孤独入客枕
  • 2021-03-23 11:05
open SOURCE,"open DESTINATION,">b.txt";   #写入格式打开b.txt,无则创建
while()      #逐行读入a.txt (换行分割每一行)
{
 if(/s*Simple{s*/ or /s*}s*/)    #如果本行格式符合 Simple{ 或者 } 则原样写入b.txt
 {
  print DESTINATION $_;
 }
 elsif(/"d{16,}"w+/)      #如果双引号数字大于或等于16个字符,则输出到b.txt, 如果你只要大于的, 那么就写17.
 {
  print DESTINATION $_;
 }
}
按你的需求,应该类似上述代码:


这个我按照你给的输入输出测试过, 没有问题. 有进一步问题可以提问.

追问我试过了 确实有效果 但是只是对“”里面如果是数字有效果。换成字母好像就不行了。追答.....我看的是你的例子, 字母的话也很简单. 改一下匹配条件就可以了.
上文第九行 把 \d 换成 \w (这样的话,就支持双引号中的数字字母下划线计数了)
elsif(/\"\d{16,}\"\w+/) ====>
elsif(/\"\w{16,}\"\w+/)

对了, 你那个跟在后面的pin需要换成a么?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯