Я пытаюсь собрать регулярное выражение, чтобы найти, когда конкретные слова не существуют в строке. В частности, я хочу знать, когда "сундук", "теги" или "ветки" не существуют (это для крюка pre-commit Subversion). Основываясь на регулярном выражении, чтобы соответствовать строке, не содержащей слова, я могу легко сделать это для одного слова, используя отрицательные образы:
^((?!trunk).)*$
Это оператор "и", с которым я борюсь, и я не могу получить комбинации, включая два других слова, работающих.
Это прекрасно работает в .NET с одним словом:
var exp = new Regex(@"^((?!trunk).)*$");
exp.IsMatch("trunk/blah/blah");
Он вернет false, поскольку он в настоящее время стоит или истинно, если "строка" не существует в пути во второй строке.
Что мне здесь не хватает?