完全に正しい正規表現:
「ゾウ」
「Elephants」と綴られていますが正しい 正規表現: "[^E]lephants|E[^l]ephents|El[^e]phants|Ele[^p]hants|Elep[^h]ants|Eleph[^a]nts|エレファ[^n]ts|エレファン[^t]s|エレファント[^s]"
回答は受け入れられました
答えを検証し、正規表現が当てはまるケースを出力する正規表現を自動的に生成する小さなプログラムを書くことができます
たとえば、正解が「Elephants」であると仮定すると、2 番目のケースをテストするルーチンを作成できます (つづりが間違っていても正解)。
String generateCorrectAltoughMispelledAnswerRegex(final String answer) {
StringBuilder builder = new StringBuilder();
String answer = "Elephants";
for (int i = 0; i < answer.length; i++) {
String mispelled = answer.substring(0, i) + "[^" + char.at(i) + "]" +
(i < length ? answer.substring(i + 1) : "");
answer.append(mispelled);
if (i < length - 1) { answer.append("|"); }
}
String regex = builder.build();
return regex;
}
例: 関数 generateCorrectAlthoughMispelledAnswerRegex を引数 "Elephants" で呼び出すことによって generateCorrectAltoughMispelledAnswerRegex("Elephants")
2 番目のケースのテストに正規表現を生成します。
"[^E]lephants|E[^l]ephents|El[^e]phants|Ele[^p]hants|Elep[^h]ants|Eleph[^a]nts|Elepha[^n]ts|Elephan[^t]s|Elephant[^s]"
他のケースでも同じことができます。