正規表現分析
このシステムでは、学生の答えを分析するため、よりパワフルな、しかしさらに複雑なシステムを提供します。正規表現に関する完全なイントロダクションは、regular-expressions tutorial または rezeau.org をご覧ください。
正規表現による正解のマッチング
このシステムにより実現できる膨大な可能性の完全な例を提示することは不可能です。下記は、いくつかの可能な例です。
例 1 あなたの問題が「 What are the colors of the French flag? 」と仮定しましょう。
1フレームの答えで、「 it’s blue, white(,| and) red/i 」という正規表現を入力すると、下記の4つの学生の答えと合致します:
- it’s blue, white, red
- it’s blue, white and red
- It’s blue, white, red
- It’s blue, white and red
デフォルトでは、正規表現マッチは大文字小文字を区別します。
大文字小文字を区別しないためには、記述の右端に /i パラメータを追加してください。
例 2 問題:「 What is blue, or red, or yellow? 」、答え:「 (|it's)a colou?r 」の場合、下記と合致します:
- a colour
- a color
- it's a colour
- it's a color
注意- この正規表現の初めの部分 (|it's) は、何も合致しないか「 it's 」 (例 スペースが続く「 it's 」) に合致します。? (クエスチョン・マーク) は、先行する文字がゼロまたは1回使用されることを意味します。ここでは、アメリカ英語と同時にイギリス英語のスペリングで使用されています。
例 3 問題:「 Name an animal whose name is made of 3 letters and the middle letter is the vowel a 」、答え:「 [bcr]at 」の場合、「 bat、cat および rat 」が合致します。
不足している必須単語または文字列を検査する
正規表現は、不足している文字列を検出することはできませんので、検出させるためには答えに少しだけコードを追加する必要があります。ダブルハイフンで始まる教師の答えは、学生の答えにダブルハイフンに続く文字があるかどうか調査します。該当する文字がある場合、分析は次の問題に続き、無い場合、分析は終了して適切なレスポンスメッセージが表示されます。
例 4
- 答え 2: --.*blue.*/i
- 学生の答え: "it's red and white"
- レスポンス 2: The color of the sky is missing!
- ジャンプ 2: このページ
ここでは、. (ドット) は、「あらゆる文字」を意味します。また、* (アスタリスク) は、「先行する文字の制限の無い繰り返し」を意味します。上記の正規表現の答え 2は、学生の答えであらゆる文字が文字列「 blue 」に先行および付随しているかどうかチェックすることを意味します。アスタリスクの使用は、単純分析システムおよび正規表現システムとは異なることに注意してください。
例 5 問題:「 Name an animal whose name is made of 3 letters and the middle letter is the vowel a 」、教師の答え:「 --[b|c|r] 」、レスポンス:「 Your answer should start with one of these letters: b, c or r 」
不要な (間違った) 単語または文字列の検出
学生の答えで、(間違っているため) 存在してはならない1つまたはいくつかの単語を検出し、特定のレスポンスとともに選び出すことができます。教師の答えをダブルプラス (++) で開始してください。
例 6
- 答え 3: ++(yellow|black|orange|green|black|pink)/i
- 学生の答え: "it's blue, orange and white"
- レスポンス 3: One or more colors are wrong!
- ジャンプ 3: このページ
間違った color が学生の答えに検出された場合、ネガティブなフィードバックメッセージ (レスポンス 3) が表示され、間違った文字列は赤色 (または 使用しているスタイルシートCSSに .incorrectクラスが存在する場合はその色) に表示されます。
例 7 問題:「 Name an animal whose name is made of 3 letters and the middle letter is the vowel a 」、教師の答え:「 ++hat 」、レスポンス:「 You might wear one made of an animal's skin, but a hat can't be considered as an animal. 」
特殊文字のエスケープ
正規表現の一部の特殊文字を使用する場合、それらの文字を「エスケープ」する必要があります (例 バックスラッシュを文字の前に置く)。例えば「 My computer cost 1000$ 」という答えを受け入れたい場合、「 My computer cost 1000\$ 」のように正規表現を書く必要があります。エスケープする必要のある特殊文字は、^$*()[]+?| です。