Regex - не лучший инструмент для тестирования подобных условий, но если вам нужно, вы можете сделать это с отрицательными взглядами :
^(?!.*word1)(?!.*word2)(?!.*word3).*$
То, что вы пытаетесь сделать, не сработает, потому что [^...]
- это класс отрицательных символов с неупорядоченным списком символов. То, что вы написали, эквивалентно:
^([^123dorw|])$
Обратите внимание, что в зависимости от ваших потребностей вы также можете включить границы слов в свое регулярное выражение:
^(?!.*\bword1\b)(?!.*\bword2\b)(?!.*\bword3\b).*$