Re: [問題] 關於單選題問卷 該如何處裡
看板RegExp (正規表示式 Regular Expression)作者PurpleCrow (紫烏鴉)時間13年前 (2011/08/09 22:57)推噓0(0推 0噓 0→)留言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
討論串 (同標題文章)
RegExp 近期熱門文章
PTT數位生活區 即時熱門文章