当前位置:  开发笔记 > 编程语言 > 正文

解析电子邮件标题的最小程序是什么?

如何解决《解析电子邮件标题的最小程序是什么?》经验,为你挑选了2个好方法。

作业:http://www.cs.rit.edu/~waw/networks/prob1.082.html

好吧,我仍然很困惑为什么这个问题被要求我的数据通信和网络课程,但这是我的作业中的问题:

    编写一个计算机程序,读取电子邮件中的标题并删除除开头之外的所有行

    从:,到:,主题:和抄送:

竞赛 - 谁可以编写最短的程序来做到这一点.

在思考了一下后,我决定以下Perl代码尽可能小.

#!/usr/bin/perl

while (<>) { print "$_" if ($_ =~ m/^(To:|From:|Subject:|Cc:)/); }

所有这一切都像一个过滤器,唯一的输出是以From:,To:,Subject:和Cc:开头的行,如问题中所指定的那样.由于没有任何具体细节,我认为上述代码至少可以正确回答问题.

现在,我想知道一个程序可能为此写得多么小?我可以理解,如果没有人想发布代码,因为他们认为我会将它用于作业,但我或多或少地寻找可以帮助我编写最短程序的建议和技巧.

另外,我确信最短的是指实际的代码长度.他确实提到脚本语言是要走的路,所以我怀疑他正在考虑解释器涉及的开销.这也意味着他不关心使用哪种语言.

谢谢你的期待!

编辑:谢谢你的建议!我在这里读了很长一段时间的问题,希望将来我能做出更多贡献.另外,我将Perl代码减少到55个字节的一些建议.我认为我们不需要处理像多行标题这样的东西.

奖励:谁能找到一个很好的理由,为什么在我们讨论分组交换和客户端/服务器架构等问题的课程中提出这个问题?

编辑2:为了记录,我的教授说有人用55字节这样做了.我认为可能的唯一方法是,他只是要求像上面这样的简单实现.



1> Leon Timmerm..:

一些提示:

print "$_" 等于 print

while(<>){...}可以通过#!在行上的选项中添加-n来替换/

$ _ = ~m //等于//

你输入四个:就足够好了.

就像是

#!/usr/bin/perl -n
print if /^(To|From|Subject|Cc):/;



2> Leon Timmerm..:

好的,这是一个多线匹配程序:

$/="";$_=<>;print$&while/^(To|From|Subject|Cc):.*\n( .*\n)*/mg

你想短,不漂亮,对;-)

推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有