2009-07-01 8 views
4

Ich habe zwei Strings, die ich mit allem übereinstimmen möchte, die ihnen nicht gleich ist, die erste Zeichenfolge kann durch eine Reihe von Zeichen gefolgt werden. Ich habe so etwas probiert, zwei oder zwei negiert und das Ergebnis negiert.Regex AND'ing

?!(?!^.*[^Factory]$|?![^AppName]) 

Irgendwelche Ideen?

+0

Ich möchte klarstellen, alles passen, die in dem Wort ‚Factory‘ nicht gleich dem Wort nicht ‚AppName‘ ist beenden oder – jtruelove

Antwort

3

DFA Antwort bei weitem die beste Option ist. Aber wenn Sie es nicht aus irgendeinem Grund verwenden können, versuchen Sie:

^(?!.*Factory|AppName) 

Es ist sehr schwierig, aus Ihrer Frage und Ihre regex zu bestimmen, was Sie zu tun versuchen; sie scheinen entgegengesetzte Verhaltensweisen zu implizieren. Die von mir geschriebene Regex stimmt nicht überein, wenn Factory irgendwo in der Zeichenfolge erscheint oder AppName am Anfang erscheint.

0

Würde es funktionieren, wenn Sie nach der Existenz dieser beiden Strings suchen und dann die Regex negieren würden?

3

was

if (!match("(Factory|AppName)")) { 
    // your code 
} 
4

diesen regulären Ausdruck Versuchen:

(?!.*Factory$|.*AppName)^.* 

Das paßt jede Zeichenfolge, die AppName nicht mit Factory Ende und enthält nicht.