次のような構造を評価したいと思います。
家は緑ですが、私の好きな色は青赤と黄色です
私はこのような正規表現で家の色を決定します:
家\s+(\ w \ s *)+(?=(シアン|緑|赤|青))
それは何をするためのものか?この式は次の一致を返します。
家は緑ですが、私の好きな色は青です
つまり、指定されたCharacterClassの色のリスト内の文字列の最後の一致を返します。つまり、REDが表示されるまでかかりますが、最初に表示される色はGREENです。
私は何をすべきか?私が探しているのは、リストに記載されている最初の色を取り、見るのをやめることです。つまり、家の色は緑であり、他には何もありません。
Q1:指定した式が1つだけ表示されるまで文字列をループする方法、つまり、式(シアン、緑、青、赤)をXORのように動作するリストに変換する方法。重要:正規表現のみを使用してください。つまり、como.NETの背景言語、Java、PERLなどは使用しないでください...
Q2:私が見逃した正規表現を使用する代わりの方法はありますか?つまり、私がたどった道は正しい道ですか?
よろしくお願いします