Re: [問題] 關於單選題問卷 該如何處裡

看板RegExp (正規表示式 Regular Expression)作者 (紫烏鴉)時間13年前 (2011/08/09 22:57), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/5 (看更多)
※ 引述《godspeedlee (妳,我可以)》之銘言: : ※ 引述《chrisdar (克里斯)》之銘言: : : 現在我有一系列單選題問卷如下 : : (Q1) Question 1 : : (1)[ ] Answer 1 for Question 1 : : (2)[ ] Answer 2 for Question 1 : : (3)[*] Answer 3 for Question 1 : : (4)[ ] Answer 4 for Question 1 : : (Q2) Question 2 : : (1)[ ] Answer 1 for Question 2 : : (2)[ ] Answer 2 for Question 2 : : (3)[ ] Answer 3 for Question 2 : : (4)[ ] Answer 4 for Question 2 : : (Q3) Question 3 : : (1)[*] Answer 1 for Question 3 : : (2)[ ] Answer 2 for Question 3 : : (3)[*] Answer 3 for Question 3 : : (4)[ ] Answer 4 for Question 3 : : (Q4) Question 4 : : (1)[*] Answer 1 for Question 4 : : (2)[ ] Answer 2 for Question 4 : : (3)[ ] Answer 3 for Question 4 : : (4)[ ] Answer 4 for Question 4 : : Pattern : \(Q(\d+)\).*?\((\d+)\)\[\*\] : : 現在問題出在 : : 1. Q2 因為沒有作答 導致把 Q3 的答案帶到 Q2 去 : : 2. Q3 重複作答也無法排除 : : 可否提供一些思考方式或做法 謝謝 : 分成兩次來作比較輕鬆: : 第一步: 將每個 Question 切割成單獨的區塊 : \(Q\d+\)[\s\w]+(\(\d+\)\[[\s*]\][\s\w]+)+ : 或 : (?<=\(Q\d+\))(.*?)(?=\(Q\d+\)) 這個式子會漏掉 (Q4) Question 4 (1)[*] Answer 1 for Question 4 (2)[ ] Answer 2 for Question 4 (3)[ ] Answer 3 for Question 4 (4)[ ] Answer 4 for Question 4 : 第二步: 對每個區塊個別進行搜尋 : \(\d+\)\[\*\][\s\w]+ (Q3) Question 3 依然無法排除 得 (1)[*] Answer 1 for Question 3 (3)[*] Answer 3 for Question 3 : 當然,使用 regexp 常常會有一種衝動想一次解決 :P 這個題目跟一次解決或分次解決沒有關係 重點在於有複數個*的無效狀況無法排除 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.248.18.139
文章代碼(AID): #1EGKg-MP (RegExp)
文章代碼(AID): #1EGKg-MP (RegExp)