[问题] 把题目卷的题目及选项当成一组取出来

楼主: art1 (人,原来不是人)   2017-06-10 18:50:24
用的语言是 javascript,实验平台是 http://regexr.com/
目前以下面的写法可以做到想要的效果
^[0-9]{1,3}\. ([A-E]{1,2})((?!^A).+\n)*((^[A-EP]\.(.+\n))+)
^^^^^^^^^^^^^^^^^^^^
这里开始是处理选项的部分
前面那段是处理题目的部分
但真正的问题是出在 [A-EP] 里面的 P,因为 A~D 或 E 选项里面有时会混入一行 P.数字
像是 A. xxxxx
P.2
B. sssss
C. aaaaa
如果要把四或五个选项当成同一组输出的话,目前想不到方法可以排除 P 那行
试过 ?!^P 或是 ?:(?!^P) 都没成功过,而 javascript 又不支援 ?<! 的样子
想问的是像这种想把得到的多行字串用()包起来当成一组输出的时候,若中间又混著不想
要的一行内容时,只剩下分成两步骤处理的方法吗?
也就是先把 P.数字找出来删掉,再去筛选剩下的内容
我知道还有其它替代方法,像是先直接筛出所有选项,然后再写程式去帮这些选项分组
但还是想先问看看是否可以纯靠正规表达式来完成这项任务

Links booklink

Contact Us: admin [ a t ] ucptt.com