У меня есть регулярное выражение для захвата имен, соответствующих «правильному» регистру, с учетом пробелов, дефисов и апострофов, с заглавными буквами после дефисов и апострофов.
Я бы хотел сопоставить все, что не соответствует.
^(\b([A-Z][a-z]*[ \-])*([A-Z]([a-z\'][A-Z]|[a-z]{2}[a-z]*)*([a-z]*))\b)$
Матчи
Мэри
Мэри-Энн
Мэри Энн
Мэри Энн Д'Анджело
Мэри-Анн д'Анжело
Мэри-Анн Д'Анджело
не соответствует
Мэри
Мэри-Энн
Мэри Энн
Мэри Энн Д'Анджело
Мэри-Анн Д'Анджело
Конечно, есть простой способ обернуть это чем-то на каждом конце, чтобы отрицать это? Я не могу понять это.