2016-07-02 2 views
0

orangeのすべての反復が、ではなく、の前にRegExを使用してapple andを見つけたいとします。私はまた、これがそれぞれの複数形のために働くことを望みます。回り込みのオプション文字

ここには、どのような妥当性があるべきか、または妥当でないべきかのリストがあります。

orange    - valid 
oranges   - valid 
an orange   - valid 
apple and orange - invalid 
apple and oranges - invalid 
apples and orange - invalid 
apples and oranges - invalid 

これまで可能にしたコードは次のとおりです。

(?<!apples? and)oranges? 

私はそれをテストするとき、私はapple後に、オプションのs文字に遡っ、エラーが表示されます。 Regex101はこのエラーを次のように記述します。

Lookbehindsはゼロ幅である必要があります。したがって、量指定子は使用できません。

なぜですか?どうすればこの問題を解決できますか?

答えて

3

ルックアヘッドは固定長でなければなりません。オプションの文字を指定すると、長さが1つずつ異なることが示されます。これは受け入れられません。しかし、あなたが行うルック尻の数によって制限されていないので、あなたはこのように、2に分割することができます

(?<!apple and)(?<!apples and)oranges? 
+0

これはトリックをしました!ありがとう! – GarethPW

関連する問題