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";
close OUT;
已测试,完全满足你的要求。
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 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么?
while(
{
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么?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯