Просто начинаю изучать «чудеса» регулярных выражений. Будучи человеком, который учится методом проб и ошибок, я действительно изо всех сил, потому что мои испытания приводят к непропорциональному количеству ошибок ... Мои эксперименты в PHP с использованием ereg ().
В любом случае. Я работаю с именами и фамилиями отдельно, но сейчас использую одно и то же регулярное выражение. Пока у меня есть:
^[A-Z][a-zA-Z]+$
Любая длина строки, которая начинается с заглавной буквы и имеет только буквы (заглавные или нет) для остальных. Но там, где я разваливаюсь, приходится сталкиваться с особыми ситуациями, которые могут случиться где угодно.
- Переносимые имена (Уортингтон-Смайт)
- Имена с апостофиями (д'Анжело)
- Имена с пробелами (Ван-дер-Хэмптон) - прописные буквы в середине, которые могут или не могут потребоваться, далеко за пределами моего интереса на данном этапе.
- Совместные имена (Бен и Джерри)
Может быть, есть и другой способ, которым может быть имя, о котором я не думаю, но я подозреваю, что если я смогу обдумать это, я могу добавить к нему. Я почти уверен, что будут случаи, когда более чем одна из этих ситуаций встречается в одном имени.
Итак, я думаю, суть в том, чтобы мое регулярное выражение также принимало пробел, дефисы, амперсанды и апострофы - но не в начале или в конце названия, чтобы быть технически правильным.