正規表現を1つの条件に正確に一致させるにはどうすればよいですか?
たとえば、次の正規表現があります。
(\w+)(?=ly|es|s|y)
式を「眼鏡」という単語と照合すると、次のようになります。
glasse
正しい一致は次のとおりです。
glass (match should be on 'es' rather than 's' as in the match above)
この表現は、次のようなあらゆる種類の単語に対応する必要があります。
films
lovely
glasses
glass
現在、正規表現は上記の単語と次のように一致しています。
film - correct
lovel - incorrect
glasse - incorrect
glas - incorrect
単語の正しい一致は次のとおりです。
film
love
glass
glass
現在私が抱えている問題は、単語に「眼鏡」などの両方が含まれている可能性があるため、正規表現を調整して「s」または「es」のいずれかに正確に対応する方法がわからないことです。
アップデート
これまでの回答ありがとうございます。ステミングの複雑さと言語知識の必要性に感謝します。しかし、私の特定のケースでは、単語は有限であるため(フィルム、素敵な、ガラス、ガラス)、したがって、これらの単語と上記の式の接尾辞にのみ遭遇します。私はこれのための特定のアプリケーションを持っていません。正規表現を使用してそれが可能かどうかを知りたいと思いました。私はそれが不可能であるという結論に達しました、しかし、以下は可能でしょうか:
一致するものが見つかったか、見つからなかったかのいずれかです。たとえば、ガラスは一致しますが、ガラスは一致しませんが、フィルムは一致します。
film (match) - (films)
glass (match) - (glasses)
glass (no match) - (glass)
私が考えているのは、接尾辞を最後から文字列と正確に一致させる方法があるかどうかです。上記の例では、「es」はガラスに一致するため、条件「s」は破棄されます。ガラス(一致しない)の場合、条件「s」はその前に別の「s」があるため破棄され、完全には一致しません。私はこれについて100%ではないことを認めなければならないので、私の論理は少し不安定に見えるかもしれません、それは単なるアイデアです。