現在のところ、この冒涜フィルタは、darn
とgolly
ではなく、Darn
またはGolly
またはDARN
またはGOLLY
ではありません。この正規表現を修正して、呪いの言葉を検索する際に大文字と小文字を区別しないようにするにはどうすればよいですか?
List<String> bannedWords = Arrays.asList("darn", "golly", "gosh");
StringBuilder re = new StringBuilder();
for (String bannedWord : bannedWords)
{
if (re.length() > 0)
re.append("|");
String quotedWord = Pattern.quote(bannedWord);
re.append(quotedWord);
}
inputString = inputString.replaceAll(re.toString(), "[No cursing please!]");
どのように大文字小文字を区別しないように変更できますか?
コンパイル済みのjava.util.regex.Patternのを使用する正規表現は、サブストリングの発生を見つけるための最も効率的な方法ではありません。この場合パフォーマンスが重要な場合は、より効率的な部分文字列一致アルゴリズムが多数存在します。http://en.wikipedia.org/wiki/String_searching_algorithm –
もう一つのclbutticミスを避けるために、おそらく '\ b'について学びたいと思うでしょう。 –