将普通试题转换成在线考试导入模板数据的记录

一、普通试题大多是这样格式的:

1.《未成年人保护法》中所称的未成年人是指(C)

A.未满12周岁的公民   B.未满14周岁的公民   C.未满18周岁的公民   D.未满20周岁的公民

2、下列属于对未成年人进行学校保护的是( BD )

A、下岗工人王某虽然生活有困难,但仍坚持他的女儿完成初中学业

B、某校举行卫生保健常识讲座和采取有效措施,指导学生预防“非典”

C、某制衣厂依据《禁止使用童工规定》拒收未成年人进厂打工

D、广州市各中学开展“六五”法制宣传教育系列活动

二、在线考试导入模板是这样的:

试题内容试题选项标准答案
下列正确的(  )1日|2日|3日|5日B

三、通过EverEdit可用正则替换(Notepad++也可参照使用)

1、以下给各行增加空行,最终是为了给最后一行增加回车(防止最后一题未能提取到答案,此步可手动操作不易出错):

查找正则为:(^.*$)

替换正则为:$1\n

2、通过正则去除空行(如果空行多的话,多替换几次,注意,替换完之后在最后一行回车换行一下):

查找正则为:\n\n

替换正则为:\n

3、通过正则去除题号(有的导入模板此步可省):

查找正则为:\d+[\.|、]

替换正则为空白:

4、将B-D选项替换到A选项后面,选项之间用|分开

查找正则为:\n?[B-D][\.|、]

替换数据为:|

5、将A选项所在行替换后与题干在一行,并且以制表符隔开,这样复制到Excel自动分布不同列中

查找正则为:\nA[\.|、]

替换数据为:\t

6、替换题干答案为空,并把答案生成最后用制表符隔开,考虑了中文与英文括号

查找正则为:[\(|\(] ?(\w+) ?[\)|、)](.*?)\n

替换数据 为:(   )$2\t$1\n

四、将替换后的结果复制粘贴到导入模板中,个别在线模板可能需要其他调整。比如有的试题格式为:

5. 《中华人民共和国家庭教育促进法》已由中华人民共和国第十三届全国人民代表大会常务委员会第三十一次会议于2021 年 10 月 23 日通过,自( )起施行

A、2021年12月1日

B、2022年1月1日

C、2022年2月1日

D、2022年6月1日

标准答案: B

试题解析:

6. 国家鼓励和支持企业事业单位、社会组织及个人依法开展( )家庭教育服务活动。

A、公益性

B、商业性

C、有偿

D、无偿

标准答案: A

试题解析:

此时可增加两个正则即可:

(1)修改标准答案的:

查找正则为:\n标准答案:

替换内容为:\t

(2)修改试题解析的:

查找正则为:\n试题解析:

替换内容为空白:

五、为方便替换,可将上述过程录制成宏如下:

ActiveDoc.ReplaceAll "运行前先文末增加回车,防止最后一题无法匹配", "", False, True, False, False
ActiveDoc.ReplaceAll "运行后个别题目无选项,则需把该题干变为一行", "", False, True, False, False
ActiveDoc.ReplaceAll "运行后个别题目无选项,可能是选项无标点符号", "", False, True, False, False
ActiveDoc.ReplaceAll "运行后选项仍然未合并,可能是选项无标点符号", "", False, True, False, False
ActiveDoc.ReplaceAll "以下进行三次删除空行,可据实际情况增减", "", False, True, False, False
ActiveDoc.ReplaceAll "(^.*?$)", "$1\n", False, True, False, False
ActiveDoc.ReplaceAll "\n\n", "\n", False, True, False, False
ActiveDoc.ReplaceAll "\n\n", "\n", False, True, False, False
ActiveDoc.ReplaceAll "\n\n", "\n", False, True, False, False
ActiveDoc.ReplaceAll "\d+[\.|、]", "", False, True, False, False
ActiveDoc.ReplaceAll "\n?[B-D][\.|、]", "|", False, True, False, False
ActiveDoc.ReplaceAll "\nA[\.|、]", "\t", False, True, False, False
ActiveDoc.ReplaceAll "[\(|\(] ?(\w+) ?[\)|、)](.*?)\n", "(   )$2\t$1\n", False, True, False, False
ActiveDoc.ReplaceAll "\n标准答案:", "\t", False, True, False, False
ActiveDoc.ReplaceAll "\n试题解析:", "", False, True, False, False

使用时,EverEdit--扩展--宏--宏编辑--读取--运行即可快速生成结果。或者:EverEdit--扩展--宏--宏读取--回放即可。

六、注意事项:

1、建议先宏试试,如果成功了最好。

2、如果不成功,可按照步骤一步步操作,目前重点检查如下情况:

(1)有的题干本身是两段构成,可手动将其题干变为一段(一行)。

(2)第5步最后一段增加回车,有时加多了,可手动回车即可。

(3)个别题目的题号或选项不规范(没有加逗点或顿号)。

正则