Предполагая, что вы хотите запретить только строки, полностью соответствующие регулярному выражению (то есть, mmbla
- это нормально, но mm
- нет), это то, что вы хотите:
^(?!(?:m{2}|t)$).*$
(?!(?:m{2}|t)$)
отрицательный прогноз ; он говорит: «начиная с текущей позиции, следующие несколько символов , а не mm
или t
, за которыми следует конец строки». Начальный якорь (^
) в начале гарантирует, что просмотр применяется в начале строки. Если это удается, .*
идет вперед и потребляет строку.
К вашему сведению, если вы используете Java matches()
метод, вам на самом деле не нужны ^
и окончательный $
, но они не приносят никакого вреда. $
внутри заглядывания требуется, однако.