首页 / PERL / Perl实践之内容匹配整理
Perl实践之内容匹配整理
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Perl实践之内容匹配整理,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1192字,纯文字阅读大概需要2分钟。
内容图文
一、前言:
最近在学习Perl,发现Perl很有趣,强大的正则匹配对文本处理很有效。
想到最近有在刷网课,某学习网站上的选择题的顺序是随机的,发布答案的网站选项与我的测验的选项不匹配,看着眼睛累,还容易出错。秉承着“懒惰即美德的”的想法,所以想到用利用最近学习Perl来整理下我的答案选项。
以下为网站答案原有形式:
9、高校对师资博士后有哪些福利
A、等同于博士直接入职待遇
B、所在城市基金委会提供一部分福利
C、分房
D、直接送钱
答案:AB
而我想要的答案形式:
9、高校对师资博士后有哪些福利
等同于博士直接入职待遇
所在城市基金委会提供一部分福利
二、分析下原有答案形式我们可以得到:
- 答案对应着选项,而且可能为一对一和一对多。
- 解析出答案选项,如答案:AB,我们要得到A,B
- 保存题目标题。正确答案的选项内容,并去掉选项头,如A、
三、话不多说了开始,撸代码吧。
#!/usr/bin/env perl
use strict;
use warnings;
use autodie;
open my $answers,"<","answer.txt"; #读入的文件
open my $answers_fix,">","answer_fix.txt"; #修正的答案文件
my %answer_number = (
"A" => 0,
"B" => 1,
"C" => 2,
"D" => 3
); #每个选项对应的数组下标
my @str_number; #记住选择题的选项内容(一般为四个)
while(<$answers>){
if(/^\d+、/){ #匹配题目标题,标题一般为(数字加、)如:1、
print $answers_fix $_;
}elsif(/^[A-D]、(.*)/s){ #匹配某个具体的选项,其选项头一般为(字母加、)如:A、# 模式s,让通配符.号可以匹配换行符
push @str_number, $1;
}elsif(/^答案:([A-D]+)/){ #解析答案
my @selects = split (//, $1); #获得答案数组,如ABC,可以得到一个[A, B, C]的数组
print $answers_fix map $str_number[$answer_number{$_}], @selects; #把每个正确选项,存入修正答案的文件
print $answers_fix "\n"; #在题目的最后增加一个空行,使看起来更加顺眼
@str_number = (); #清空选项内容数组
}
}
四、最后秀一下整理前后的答案截图吧!
原文:https://www.cnblogs.com/hellcode/p/12805766.html
内容总结
以上是互联网集市为您收集整理的Perl实践之内容匹配整理全部内容,希望文章能够帮你解决Perl实践之内容匹配整理所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。