作者art1 (人,原来不是人)
看板RegExp
标题[问题] 把题目卷的题目及选项当成一组取出来
时间Sat Jun 10 18:50:24 2017
用的语言是 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.数字找出来删掉,再去筛选剩下的内容
我知道还有其它替代方法,像是先直接筛出所有选项,然後再写程式去帮这些选项分组
但还是想先问看看是否可以纯靠正规表达式来完成这项任务
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 122.121.187.206
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/RegExp/M.1497091829.A.C92.html