これは、何百回も尋ねられ、回答されてきた質問の 1 つですが、他のソリューションを自分のニーズに合わせるのに苦労しています。
私の Java アプリケーションには、チャット メッセージの悪い言葉を検閲する方法があります。それは私の言葉のほとんどで機能しますが、私が取り除くことができないように見える特定の(そして人気のある)呪いの言葉が1つあります. その言葉は「ファエン」です(問題の言語では、単に「サタン」の現代的なスラングです)。
複数の A と E を一致させるためにパターン "fa+e+n" を使用すると、実際に機能します。ただし、この言語では、「そのソファ」または「そのソファ」の単語は「ソファエン」です。[^so] と (?!=so) のバリエーションを使用して、さまざまなアプローチを試しましたが、これまでのところ、一方を一致させて他方を一致させる方法を見つけることができませんでした。
ここでの本当の目標は、母音の数に関係なく、単語の構成要素の間に文字以外の文字が含まれていても、悪い単語を一致させることです。
私がやろうとしていることのいくつかの例を次に示します。
"String containing faen" Should match
"String containing sofaen" Should not match
"Non-letter-censored string with f-a@a-e.n" Should match
"Non-letter-censored string with sof-a@a-e.n" Should not match
これについて正しい方向に向けるためのヒントはありますか?