Я пишу регулярное выражение для допустимых имен и фамилий.В настоящее время я хочу разрешить только следующие значения
- от a до z
- от A до Z
- '
- (-) (символ тире)
- диакритические знаки
Мое регулярное выражение @"^[a-zA-Z-'\p{L}]*$"
Хотя я хочу разрешить апострофы и тире, я также не хочу, чтобы имя было просто тире или просто апостроф.Поэтому, чтобы сделать это, я написал несколько дополнительных регулярных выражений в Fluent Validator, чтобы поймать эти крайние случаи, но это не позволит мне разделить их.
.Matches(@"^[a-zA-Z-'\p{L}]*$")
.Matches(@"[^-]")
.Matches(@"[^']");
Это тоже не так уж и здорово, так как я тожене хочу разрешать имена, которые являются просто апострофами, такими как '' '' '' или просто черточками, такими как ---------.
Существует ли более эффективное регулярное выражение, которое можно написать для обработкивсе эти случаи?