問題は次のとおりです。ユーザーにはテキストフィールドが表示され、そこにフィルターを入力できます。フィルター処理されていないデータをフィルター処理するためのフィルター。Oracle Formsの洗脳を経験しているユーザーは、%以外の特殊文字を使用していません。これは、Javaでは多かれ少なかれ「。*」正規表現を表していると思います。
ユーザーパーソンが適切に動作している場合、特定のパーソンは「CTHULH%」のようなものを入力します。その場合、パターンを作成できます。
Pattern.compile(inputText.replaceAll("%", ".*"));
しかし、ユーザーパーソンがインスマス出身の場合、彼は「。+ \ [a-#$%^&*(」と入力すると、数回の簡単なキーストロークで私のスキームが破壊されます。これは機能しません。
Pattern.compile(Pattern.quote(inputText).replaceAll("%", ".*"));
文字列の最初に\Q、最後に\ Eを配置するため、%->。*switchmootがレンダリングされます。
問題は、パターンコード内のすべての特殊文字を検索し、前に「\\」を追加して自分でエスケープする必要があるのか、それとも自動的に実行できるのかということです。それとも私は問題に深く関わっていますか、私はいくつかの明白な解決方法を省略していますか?