[問題] 把題目卷的題目及選項當成一組取出來

作者: 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