Обратите внимание, что .*
соответствует любым 0 или более символам, кроме символов разрыва строки, как можно больше, и этот шаблон редко полезен при проверке строк.
Вы можете использовать
^[A-Z]{3} (?!(?:MP|PM)\b)[A-Z][a-z]+ (?!(?:MP|PM)\b)[A-Z][a-z]+
Или, используя группу без захвата с ограничивающим квантификатором:
^[A-Z]{3}(?: (?!(?:MP|PM)\b)[A-Z][a-z]+){2}
^^^ ^^^^
См. Демонстрационные примеры regex # 1 и демонстрационные примеры regex # 2 .
Если вам нужно сопоставить два или более таких Word
с, используйте
^[A-Z]{3}(?: (?!(?:MP|PM)\b)[A-Z][a-z]+){2,}
^^^^
Часть (?!(?:MP|PM)\b)[A-Z][a-z]+
выполняет следующие действия:
(?!(?:MP|PM)\b)
отрицательный прогноз проверяет, равно ли слово MP
или PM
, и не соответствует, если шаблон соответствует [A-Z][a-z]+
использует заглавную букву, за которой следует 1+ строчнаяиз них.
![enter image description here](https://i.stack.imgur.com/TxzF5.png)