- 论坛徽章:
- 0
|
本帖最后由 iLRainyday 于 2012-10-24 00:19 编辑
现在要做一个小东西,用来提取各个选择题的选项部分(不包括选项字母),并将提取出来的选项之间用;隔开。例如:
2 以下可以在PHOTOSHOP中直接打开并编辑的文件格式有( ABC ).
A *.JPG B *.GIF C *.EPS D *.DOC
3 在PHOTOSHOP中,修改图像文件画布尺寸的方法可以是( D )
A. 给定选择区然后执行菜单命令<图像>/<裁切>
B) 在PHOTOSHOP工具箱面板中<裁切>工具
C 使用PHOTOSHOP中的菜单<图像>/<图像大小>
(D) 使用PHOTOSHOP中的菜单命令<图像>/<画布大小>
所以写了如下代码(部分)(事先已经将所有的选项提取并存放在@lines了)(正则部分写的很丑):- foreach my $option_line (@lines) {
- push @options, (split /(?:\h+|\x{0028}|\x{FF08}|^)[A-Z]\p{P}*\h+/i, $option_line); #获取全部备选答案
- }
- foreach (@options) {
- $combin_options .= $_. ';';
- }
复制代码 但是发现@options中总是包含空字段。不知道为什么???
所以只好用了很苦逼的方法:
foreach my $option_line (@lines) {
push @options, (split /(?:\h+|\x{0028}|\x{FF08}|^)[A-Z]\p{P}*\h+/mi, $option_line); #获取全部备选答案
@options = grep {$_} @options;
}
foreach (@options) {
$combin_options .= $_. ';';
}
|
|