2010-08-13 11 views
9

Voglio abbinare un URL che contiene una sequenza di caratteri URL validi ma non una parola particolare. L'URL in questione http://gateway.ovid.com e voglio corrispondere nulla, ma la parola 'gateway' così:Regex - Corrisponde a qualsiasi sequenza di caratteri ad eccezione di una determinata parola in un URL

ma

Qualcosa di simile a quanto segue:

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

ma non sembra funzionare.


Aggiornamento: dispiace dimenticare di parlare la lingua, è C# .NET

risposta

12

tuo regex è quasi corretto tranne l'extra '|' dopo "+". Rimuovi il '|'

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

Impressionante! Funziona perfettamente. Stavo provando anche tutte le combinazioni a cui potevo pensare. –

-2

Lei non ha specificato lingua del paese ospitante, ma perché non qualcosa di simile psuedocodarlo

bool good = Regex.Match(yourRegex) and not Regex.Match(gateway) 
Problemi correlati