正则匹配

php中文网
发布: 2016-06-23 14:24:24
原创
1187人浏览过

正则,匹配

1 基于数字图书馆的基本特征是()
A数字资源 B网络服务 C特色技术 D知识产权
参考答案:ABC

2 数字图书馆的学派包括()
A资源主导学派 B服务主导学派 C 信息学派 D技术主导学派三大学派
参考答案:ABD

3 资源主导学派以资源数字化为目标,借助一定的技术手段,不一定是最先进的,提供因特网浏览和检索()
正确
错误
参考答案:正确

请问要将这样的题目把每道题的题目和答案分别提取出来应该怎么做?有正则表达式的话要怎么匹配?

回复讨论(解决方案)

$s =<<< TXT1 基于数字图书馆的基本特征是()A数字资源 B网络服务 C特色技术 D知识产权参考答案:ABC2 数字图书馆的学派包括()A资源主导学派 B服务主导学派 C 信息学派 D技术主导学派三大学派参考答案:ABD3 资源主导学派以资源数字化为目标,借助一定的技术手段,不一定是最先进的,提供因特网浏览和检索()正确错误参考答案:正确TXT;preg_match_all('/(.*?)参考答案:(\S+)/s', $s, $r);print_r(array_map('trim', $r[1]));print_r($r[2]);
登录后复制
Array
(
    [0] => 1 基于数字图书馆的基本特征是()
A数字资源 B网络服务 C特色技术 D知识产权
    [1] => 2 数字图书馆的学派包括()
A资源主导学派 B服务主导学派 C 信息学派 D技术主导学派三大学派
    [2] => 3 资源主导学派以资源数字化为目标,借助一定的技术手段,不一定是最先进的,提供因特网浏览和检索()
正确
错误
)
Array
(
    [0] => ABC
    [1] => ABD
    [2] => 正确
)

1.你这个是纯文本还是html显示的?如果是html要给出源代码
2.要通用正则还是只针对这个文本?通用正则指题目内容及数量可变
3.你说的答案指的是“参考答案”还是选择枝?

preg_match_all('#(?:\A|\n\n)\d+ (.+)\n[\s\S]+参考答案:(.+)#', $string, $m);

没测试,自行测试

请问我如果想同时匹配出题目 选项 答案 又应该怎么写?

问题和选项之间只有换行符可识别,如果不确定问题只有一行的话,恐怕只能人工识别
preg_match_all('#(?:\A|\n\n)\d+ (.+)\n([\s\S]+)\n参考答案:(.+)#', $string, $m);
这个只适合问题只有一行,也是自行测试吧,我这没php环境

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号