2009-10-15 9 views
0

Si occurence j'ai ces cordes:Regex ignorer mot suivant

banana not included. apple included. 
banana, apple included. 

la regex ci-dessous RENDEMENTS un match sur les deux chaînes, mais je ne veux pas un match sur la première chaîne

banana.*(?<!(\bnot))inc(\.|luded)? 

Qu'est-ce que Suis-je manquant dans mon regex pour atteindre mon résultat souhaité.

Merci!

+0

Il existe plusieurs moteurs d'expression rationnelle différents. Quelle langue/moteur utilisez-vous? – Emily

+0

C#, .NET. Appréciez votre aide Emily. – Jaime

Répondre

1

Il est difficile de dire à partir de seulement deux exemples, mais c'est peut-être ce que vous voulez?

banana(?!.*\bnot\b).*\binc(\.|luded)? 
+0

Merci Laurence! Je pense que nous sommes proches, mais j'ai trouvé une autre variante où la chaîne est "orange incluse, banane incluse, pomme non incluse". Cela ne me donne pas un match. Merci encore, j'apprécie vraiment votre aide. – Jaime

0

Je n'ai pas une meilleure solution que Laurence, mais pour répondre à la partie pourquoi de votre question, je crois que le .* a déjà consommé le not que votre lookbehind recherche.