私が扱っている問題は、その語尾が特定のリストにある場合、語尾を削除する必要があることです。
つまり、リストは次のとおりです。
{ical, ic,ion,ogy} //the actual list is a handful of elements (almost ~20)
私がする必要があるのは、次のような文に出くわしたときです。
Hello world, this sentence is magic. Because we will talk about Biology.
次のように削減されます。
Hello world, this sentence is **mag** . Because we will talk about **Biol** .
これを行う最も簡単な方法は、文中の単語を繰り返し処理し、各語尾がリスト内の要素と一致するかどうかを確認することですが、これには非常にコストがかかります。
上記を達成するためのより簡単な方法はありますか?
***** また *****
単一の大きな REGEX でこれを行うことができます。
(?<=([a-zA-Z]))(ic|ical|ics|raphy|raphic|raphical|ion|ions|ional|ive|ivity|ity|ities|ische|ischen|ischer|isches|ogy|ogic|ogical|omy|omic|omics|omical)(?=(\b))