Я думаю, вы можете поменять две схемы. Второй не совпадает, а первый совпадает:
^(Mr|Mrs|Ms|Dr|Er)\..[A-Za-z]+$
Демо 1
^(Mr|Mrs|Ms|Dr|Er)[\..][A-Za-z]+$
Демо 2
Второй использует класс символов [\..]
, который удаляет особое значение любых токенов регулярных выражений (например, .
в []
соответствует буквальному периоду, а не его специальному значению (любому символу). Первый шаблон соответствует буквальному периоду сопровождаемый любым другим символом, кроме символа новой строки. Подробнее об этом см. «Объяснение» справа в демонстрационных ссылках выше.
ОБНОВЛЕНИЕ: ваш шаблон также будет соответствовать Ms.underscore (без пробела между названием и именем). Итак, рассмотрим следующую схему, которая, я думаю, лучше подходит для того, что вы ищете:
^(Mr|Mrs|Ms|Dr|Er)\.[ _][A-Za-z]+$
Демо 3