正则匹配

WBOY
Lepaskan: 2016-06-23 14:24:24
asal
1063 orang telah melayarinya

正则,匹配

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]);
Salin selepas log masuk
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环境

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan