看板 RegExp 關於我們 聯絡資訊
用的語言是 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://www.ptt.cc/bbs/RegExp/M.1497091829.A.C92.html