2010-08-13 5 views
9

Je veux faire correspondre une URL qui contient n'importe quelle séquence de caractères d'URL valides mais pas un mot particulier. L'URL en question http://gateway.ovid.com et je veux correspondre à quelque chose, mais le mot 'passerelle' si:Regex - Correspond à n'importe quelle séquence de caractères sauf un mot particulier dans une URL

mais

Quelque chose comme ce qui suit:

^http://([a-z0-9\-\.]+|(?<!gateway))\.ovid\.com$ 

mais il ne semble pas fonctionner.


Mise à jour: oublier Désolé de parler la langue, il est C# .NET

Répondre

12

Votre regex est presque correct sauf l'extra '|' après '+'. Supprimer le '|'

^http://([a-z0-9\-\.]+(?<!gateway))\.ovid\.com$ 
+0

Génial! Cela fonctionne parfaitement. J'essayais toutes les combinaisons possibles. –

-2

Vous n'avez pas spécifié la langue d'accueil, mais pourquoi ne pas quelque chose comme ça psuedocode

bool good = Regex.Match(yourRegex) and not Regex.Match(gateway) 
Questions connexes